AVR の EEPROM 非同期書き込み関数

TR-909 クローンのシーケンスパタンは eeprom に書き込みますが、avr-libc ライブラリが提供している eeprom 関数には同期書き込みしかありません。

https://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.html

しかし、TR-909 クローンのファームウェアでは割り込みをほとんど使わずリアルタイム処理がなされていて、eeprom を同期書き込みすると書き込み中処理が止まってしまいます。これが様々な誤動作の原因になってしまうので、非同期書き込み関数を書きました。

シーケンサの基本構造とリズムパタンの打ち込み

909 の製作はハードウェア部分はほぼ終わり、ファームウェア書きが中心になってきました。ソースコードは GitHub に上げていて文章で書くことがだんだんなくなってきて、ブログ記事の間が広がってまいりました。その中で、シーケンサの基本構造とそこへリズムパタンを打ち込む部分はソースコードを読むだけではわかりにくい、自分でも忘れてしまうかもしれないので大枠を記事にしておきます。