« 4014HVと2350HVはギア比が違うだけ? | メイン | 11/26、11/27のこと »

2005年11月25日

R8C/15の7bitシリアル通信ではまる

仕事で、R8C/15を使った小物を作成。(製品ではない)
R8C/15というと、トランジスタ技術2005/4の付録にもあったCPU。
このCPUで、シリアル通信を使ったソフトを書いたところ、うまく行ったので喜んでいたら、データビット長を7bitにしたところうまく通信できなくなった。もちろんデータは7bitの範囲のデータをやり取りしている。
デバッガをつないで確認したところ割と簡単に問題の箇所が判明。それは、7bit通信で、7bitのデータを受信したとき、8bit目は0になっていると思い込んでいたが、そうではなく、7bit目のビットが「8bit目にコピーされる」という仕様のようです。(仕様書は読んでませんが...)符号拡張ですね。
というわけで、受信データをバッファに格納するときに8bit目を強制的に0にすることで、プログラムは動くようになりました。

投稿者 hiranoy : 2005年11月25日 19:31

コメント

コメントしてください




保存しますか?