うん,とってもいい感じ(自画自賛)
バッファ領域が取れない件,バッファなしにして,キャラクターデータをそのまま書くように修正した。ついでに,xは横ドット数で良くて,yは行数 0 から 3 までの指定とした。
void OLED_char6(char character, short x, short y) { short table_offset = (character-0x20)*5; OLED_command(0x20); // Set memory addressing mode OLED_command(0x02); // Page addressing mode OLED_command(y+0xB0); // Set page start address OLED_command(x & 0x0F);// Set lower column start address OLED_command(0x10 + (x >> 4)); // Set higher column start address I2CStart(); I2CSend(_address); I2CSend(0x40); char i = 0; for(; i < 5; i++) { I2CSend(OLED_characters[i+table_offset]); } I2CStop(); } |
xとyの範囲チェックをあまり厳密にしていない。無茶するとOLEDが固まり,PIC側も道連れにするようだ。要注意。
派手なグラフィックとかは苦手だけど,ちょっと情報を書き出すには充分な感じ!
0 件のコメント:
コメントを投稿