C-Style での注意点

TJ3BのC-StyleでCNの値で演算する場合の注意点。

次の(1)から(4)はそれぞれ同じ計算をしているようで、シリアル表示すると計算結果が異なる。意図する答えになっているのは(3)と(4)。

  • (1)79,80行
  • (2)81,82行
  • (3)83-85行
  • (4)86,87行

ちなみにセンサーモニタではCN3は「1020」、80,82,85,87行は同じ内容のprintf()。


変数ブロックでの変数「A」とセンサ値「CN1」は、C-CodeではgV[VAR_A]、gAD[CN1]と書けるが、もともとののgAD、gVのデータ型が異なるために発生する。

  • gAD → unsigned int(符号なしint)
  • gV → long(符号ありlong)


(3)のようにセンサ値を取得する行と計算する行を分けるか、(4)のようにデータ型を明示する必要がある。