CS+で16進8桁で表示するために次のように書きました。sprintf (Str, "DEF = %08X\r\n" ,1023)しかし、次のように表示されます。DEF = %8X
期待するのは、DEF = 000003FF です。
オーとゼロを間違えたかと思い確認しました。
sprintf (Str, "DEF = %8X\r\n" ,1023) とすれば
DEF = %8X と表示されます。
sprintf (Str, "DEF = %X\r\n" ,1023) と書けば、DEF = 3FF と表示されます。
使い方が間違えていますか?
わわいさん、リカルドです。
>sprintfなどに関しては環境ごとの挙動の違いが大きすぎるため、ウチの開発では、これらの標準関数に関しては使用禁止としています
もしかしたら、ルネサスのバグかも知れませんね。あまり使われないので、表面化しないのかも知れませんね。
秋月電子でLCD表示器を売っています。H8/3052のキットに付属している5V使用のLCDは問題無く動きました。RX621キットに付属している3V仕様のLCDにはバグが有りました。LCDのコマンドを全て試したら、上手く動かないコマンドが有りました。秋月電子に調査して貰ったところ、製品のバグでした。何年も経っているので去年だったか秋月電子に訊いたところ、改善されていないとの回答でした。そのコマンドは、ユーザーオリジナルのキャラクタを作るコマンドだったと思います。あまり使われなくて表面化しないのでしょう。
わわいです
メンテからこっち、なんかいろいろかわってるようですねーってことでここにぶら下げますが。。
とそれはさておき、Hex変換ごとき、サクッと自分で実装してしまえばいいんでは。
sprintfにこだわって無駄に時間をかけても何にもならないと思いますよ
>メンテからこっち、なんかいろいろかわってるようですねー
書き込みが有るとメールで知らせが来ていたのですが、わわいさんの書き込みに対して知らせが有りませんでした。 sprintf の件に関して、最後の書き込みがわわいさんだったので気付きました。
>sprintfにこだわって無駄に時間をかけても何にもならないと思いますよ
sprintf の機能を調べるのが目的です。
while(1){} が、どの様にマシン語になるのか調べた事が有ります。単純にジャンプ命令のなるのかと思ったら、そうでは無かった。1と0との比較命令が入っていました。1をレジスタにロードしただけで、ゼロフラグが変化する筈だけど。