本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

締切済み

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

2023/12/17 19:04

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

※OKWAVEより補足:「技術の森( ソフトウェア)」についての質問です。

投稿された画像

回答 (2件中 1~2件目)

2023/12/17 20:22
回答No.2

回答No.1です。

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

お礼

2023/12/17 21:01

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

このQ&Aは役に立ちましたか?

2023/12/17 20:11
回答No.1

*imageのアドレスに入っているイメージデータは、8bitで8pixel分のデータになっている。
(多分、1でON、0でOFFのモノクロを想定)
対してディスプレイに表示させるデータ領域は、8bits(1byte)で1pixelになっている。
(多分0xFFで白、0x00で黒)

なので、*imageにあるデータから1bitずつ取り出して、data()でデータ領域にセットしている。
つまり、コメントに書いてあるとおり、8bitsのデータを8pixelsに伸張(spread)している。

このルーチン内ではdata()がどう定義されているのかわからないので、データ領域のアドレスがどのようにインクリメントされていくのかは、よくわからない。

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。