当ブログは…
MIDI FX SW
パネルのボタンやロータリエンコーダなどを処理するテストプログラムを書いていて思ったこと。
以前作った 3-program 3-loop 1-manual のエフェクトループプログラマは、プログラム選択ボタンとマニュアル時のループon/off ボタンが兼用になっていて、それをマニュアルボタンでモードをもって切り替えていた。
それに対して今回の MIDI FX SW はプログラム選択はMIDIかロータリエンコーダで行うわけで、フロントパネルのタクトスイッチのLEDは常にループの on/off 状況を示している。ということは、モードスイッチって要らないじゃん。じゃくい… _| ̄|○
まぁ、なにか別の使い方を考えることにしよう…
今日の作業 ― FX SW ソフト
この連休に出来たこと。
- プログラムを動かして配線チェック
- 7seg LED表示のサブルーチン (愚直にパラ-シリしてI/Oポート叩く)
- ループon/off タクトSW のサブルーチン (timer0 で 約1msec 割込みでエッジ検出)
- モード切替え タクトSW のサブルーチン (timer0 で 約1msec 割込みでエッジ検出)
- ロータリエンコーダのサブルーチン (timer0 で 約1msec 割込みでエッジ検出)
- 書込み タクトSW のサブルーチン (timer2 で 約1msec 割込みでエッジ検出、長押し検出)
- ループon/off タクトSWのLED のサブルーチン (timer1 で 割込んでトグル)
- キー、ロータリENC クリック音、長いアラーム音処理
- 内蔵EEPROM 読み出し処理
- ポーリングによるテストプログラムでの電源断検出 (→本番では割込みにする)
ここまでで、.text は約1K Byte *1。AVR AT90S8535 のプログラム領域は 4K Byte(2K word)なので、どれだけ機能を盛り込めるか…
これ以外にフレームワークとして対応すること。
- シリアルI/F サブルーチンの整備
- ゼロからの立ち上がりなのか、sleepからの復帰なのかを判別できる機構の整備