Arduboy のフレームバッファ

概要

Arduboy の画面に色々表示させるために、フレームバッファの構造について検証します。

フレームバッファの構造

1bit が 1 ドットに対応しており、 1 バイト毎に縦に並んでいる。

1
unsigned char* ptr = arduboy.getBuffer();

として、 ptr の添え字と座標の関係は以下の表の通り。

x0 x1 x2 x127
y0-y7 0 1 2 127
y8-y15 128 129 130 255
:
y48-y55 768 769 770 895
y56-y63 896 897 898 1023
1
2
3
4
auto ptr = arduboy.getBuffer();
ptr[0] = 0xff; // 1111_1111
ptr[8] = 0x11; // 0001_0001
ptr[16] = 0xa7; // 1010_0111

例えば上記のように描き込んだ場合は、

screenshot.png

このように表示されます。

このことから、ビットの対応は、

bit
y0 0
y1 1
y2 2
y3 3
y4 4
y5 5
y6 6
y7 7

になってることがわかりました。