今日やったことまとめ。
・画像コンバータを複数ファイルに対応しました。
1つのファイルに1ヘッダは大変です。
・画像形式は二種類あった方が便利みたいです。
→oled形式(ディスプレイ仕様)
タイトルの1枚絵や、フォント用。
→ビットマップ形式
8x8, 16x16などの小さいキャラクタで、
画面の端に移動させても部分表示できる境界有利の構造。
GBAでいうスプライト。
・画面右のLEDが点灯していると音が歪む。
起動後すぐには演奏しないようがいいです。
・arduino libraryの音ライブラリ部分はバグがあるっぽい。
サンプル演奏のやや後半あたりが怪しい。
自分のはなぜか問題なし(汗。
・ループの変数は8bit、16bitどちらを使うべきか。
というか悩むまでもない話ですけど念のためです。
// volatile unsigned int i, j; volatile unsigned char i, j; volatile unsigned long m1, m2, m3, m4; m1 = millis(); for(i=0; i<200; i++){ for(j=0; j<200; j++) {} } m2 = millis(); for(i=0; i<200; i++){ for(j=0; j<200; j++) {} } m3 = millis(); for(i=0; i<200; i++){ for(j=0; j<200; j++) {} } m4 = millis(); OledDrawStr(0, 2, "%l", m1); OledDrawStr(0, 3, "%l", m2); OledDrawStr(0, 4, "%l", m3); OledDrawStr(0, 5, "%l", m4); OledDrawStr(0, 6, "%l", m4 - m1);
・結果
char int 0x0c 0x0c 0x27 0x3c 0x44 0x6c 0x60 0x9c 0x54 0x90(10進数で84、144)
12万回ループで大雑把に1.7倍ぐらい。
・豆知識1
avr-size test.elf -x text data bss dec hex filename 0x265e 0x38 0x4a0 11062 2b36 test.elf
・豆知識2
avr-objdump -S hello.cpp.o >test.txt avr-objdump -D test.elf > test2.txt