0
0

(しくみ)白黒128x64の仮想VRAMに任意の1Dot(ドット)を書き込む(SSD1306等)(座標)(水平走査線方式)

Last updated at Posted at 2024-07-13

目的

128ドット x 64ドットの仮想VRAM(水平走査線)に
任意のx,yで指定されたドットに白/黒を書きこむ

y は、16バイト
x は、16バイトで1バイト8ビット
1ピクセルは、1ドット1バイト

● 構造

ポインターの値は、yを16倍とxを8で割ると求まる。

point_n = ( point + (y << 4) + (x >> 3))

o_coq203.jpg

● ドットの書き込み

(1) 1の場合

ポインターの値から実データを読み出し任意のビットにOR(オァー)で書き込む

*(point_n) = *(point_n) | ( 1 << ( x & 7 ) )

(2) 0の場合

ポインターの値から実データを読み出し任意のビットにAND(アンド)でリセットする
[xを7でマスクする][1をn回シフトする][全体を反転する][AND(アンド)する]

*(point_n) = *(point_n) & ( ~( 1 << ( x & 7 ) ) )

o_coq208.jpg

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0