
PIC 16F688、mplab xc8を使っています。
LCDにprintfで5桁の整数を表示させたいのですが、65536以上はうまく表示できません。
5桁で99999を表示させるにはどうすればいいでしょうか?
例えば、このように書くと99999以上の数字が表示されてしまいますが、65535までは正常に表示されます。また、0も5桁で正常に表示されています。
unsigned short long a;
a=99999;
printf("%05.5lu",a);
SLEEP();
printfの%lが悪いのか、%uが悪いのか、他の指定が有るのか分かりません。
No.2ベストアンサー
- 回答日時:
a の型を、32bit の unsigned long にしたらどうでしょうか。
a は、24bitしかないのに lu つまり32bit分データがあると解釈して範囲外のデータまで一緒に見ているのではないかと。で、その範囲外のデータがたまたま0か、他の計算の結果汚れているかで 意図したとおりの値が表示されるかわけのわからない値が表示されるかの違いになっている、そんな気がします。
この回答への補足
Classified様
%luに合わせて変数のbitを設定するわけですね。printfでlongで読めと指定してるのに、変数が24bitだから、他の領域を読んでしまってるのかぁ。
当初は5桁の10進数を表したいだけでしたので、安易に変数側を24ビットにすれば良いと考えていました。printfでshort longの指定が無いのも不可解でもありました。
最悪、7セグLEDを5桁で表示させる時のように、桁毎に割り算して、桁毎に表示させるしかないのかな?それとも、気持ち悪いけど65536で0に戻る仕様にするかな?と思っていました。
明日は外に出てしまいますので、明後日などに変数をunsigned longで試してみますね。まずは、鋭いご指摘ありがとうございました。
早く結果を知りたくて、出先から戻ってきた後に試してみましたら、unsigned longで成功しました。たいへんたいへん助かりました。
ありがとうございました。
No.1
- 回答日時:
unsigned short long ってなんだよ.
あと, 「99999以上の数字が表示されてしまいますが、65535までは正常に表示されます」の意味がまったく分からん.
この回答への補足
unsigned short long これおかしいですか?すみません、私もおかしい理由が分かりません。
a=99999とするとLCDの表示は99999にはならず、7桁くらいの意味不明な数字がLCDに表示されてしまいます。5桁の指定をしているのに、5桁以上となってしまう事も不明です。
また、%luを、%uとした時は、65536は0となります。これは分からなくもないのですが、short longで24ビットにしてますので、16ビットで桁あがりしないでほしいのです。
他の数字の場合、a=0としたときはLCDは00000となります。a=1は00001になります。これで伝わりましたでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
腕を見たら黄色くなってる部分...
-
血液検査の結果が悪くefgrの値...
-
検便についてです。 便は取れた...
-
風俗店へ行く前のご飯
-
彼女のことが好きすぎて彼女の...
-
病院側から早く来てくださいと...
-
勃起する時って痛いんですか? ...
-
値が入っているときだけ計算結...
-
Excel 0目標に対して数字があ...
-
2つの数値のうち、数値が小さい...
-
大動脈石灰化と言われました。...
-
「Q.C. PASSED」とは?
-
白血球が多いとどんな心配があ...
-
イタリアから帰国する際、肉製...
-
精液の落とし方を教えてください
-
小数点以下を繰り上げたものを...
-
EXCELで条件付き書式で空白セル...
-
Excelグラフのラベルオプション...
-
化合物のモル吸光係数データベ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
血小板増加について
-
彼女のことが好きすぎて彼女の...
-
Excel 数値の前の「 ' 」を一括...
-
病院側から早く来てくださいと...
-
VLOOKUP関数を使用時、検索する...
-
腕を見たら黄色くなってる部分...
-
値が入っているときだけ計算結...
-
リンク先のファイルを開かなく...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
小数点以下を繰り上げたものを...
-
一番多く表示のある値(文字列...
-
MIN関数で空白セルを無視したい...
-
勃起する時って痛いんですか? ...
-
エクセルで空白セルを含む列の...
-
増減表のプラスマイナスの符号...
-
【Excelで「正弦波」のグラフを...
-
エクセルで数式の答えを数値と...
おすすめ情報