• 締切済み

有機ELディスプレイへの画像表示

PICマイコンを使って有機ELディスプレイに画像を表示しようとしています。そのサンプルプログラムの中で以下の記述があるのですが、何をしようとしているのか分かりません。 if((buff >> n) & 0x80 == 0x80){ (プログラムの全容は添付画像に載せさせていただきました) buffを右シフトして0x80(10000000)との積をとっても0x80にしかならないと考えているのですが、何が間違っているのでしょうか。 拙い内容で申し訳ないのですが、ご教授いただけば幸いです。 ※OKWAVEより補足:「技術の森( ソフトウェア)」についての質問です。

みんなの回答

  • sknbsknb2
  • ベストアンサー率38% (1158/3030)
回答No.2

回答No.1です。 コードをよく見たら、右シフトと左シフトを間違えてるんじゃないかと思いました。(単純な記述ミス)

NCN-3C7A1191
質問者

お礼

ご回答ありがとうございます。 とりあえずコピペして動かしたところ、正常に表示されました。なのでコード自体は間違っていないようです。

Powered by GRATICA
  • sknbsknb2
  • ベストアンサー率38% (1158/3030)
回答No.1

*imageのアドレスに入っているイメージデータは、8bitで8pixel分のデータになっている。 (多分、1でON、0でOFFのモノクロを想定) 対してディスプレイに表示させるデータ領域は、8bits(1byte)で1pixelになっている。 (多分0xFFで白、0x00で黒) なので、*imageにあるデータから1bitずつ取り出して、data()でデータ領域にセットしている。 つまり、コメントに書いてあるとおり、8bitsのデータを8pixelsに伸張(spread)している。 このルーチン内ではdata()がどう定義されているのかわからないので、データ領域のアドレスがどのようにインクリメントされていくのかは、よくわからない。

関連するQ&A