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)のようにデータ型を明示する必要がある。