A/D変換後の値をLCDへ表示するプログラムです。
A/D変換後の値(10bit)をint型で宣言した場合、
LCDには10bitのデジタル値(0~1023)が表示されますが、
long型で宣言したら、LCDに表示される値が0で固定されてしまいました。
理由が分かりません。
初歩的な質問かと思いますが、教えていただけると助かります。
int型とlong型
Re: int型とlong型
処理系(マイコン?)の仕様がわかりませんが、普通のC言語のsprintf関数では%dはint型を、%ldはlong型を受け取る書式であり、書式と渡すデータの型の対応が間違っていると未定義動作になります。
処理系のアーキテクチャ(ビッグエンディアンかリトルエンディアンかその他かや、関数への引数の渡し方)もわかりませんが、long型がint型より大きく、上位の0が使われたため0で固定されたのであると予想できます。
処理系のアーキテクチャ(ビッグエンディアンかリトルエンディアンかその他かや、関数への引数の渡し方)もわかりませんが、long型がint型より大きく、上位の0が使われたため0で固定されたのであると予想できます。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)