Interrupt)をサポートしている。通常は割込みルーチンの中は暴走をさけるため割込み禁止になっているのだが、割込み解除のコードを追加するだけで多重割込みができる。C言語でも大丈夫なようだ。おお、割込みルーチンにオプションがあって、割込みルーチンの先頭で割込み禁止を解く、ISR_NOBLOCKというオプションまである。これはDACのように少しでも割り込み禁止をかけたくない(ジッターが出て音質が損なわれる)ときは都合が良い。次の問題は、演奏中断のときのタイマーの取り扱いである。今のプレーヤーには、演奏中にボタンを押せば演奏を中断し、さらに次のボタン押しで再開する機能がある。長押しの時間で連続演奏を止めたり、演奏を中止する機能もタイマーの時間をキーにしている。これがバックグラウンドでも正常に動かないといけない。これは、割込み側のSDカードアクセスルーチンにこの処理を持ち込めば問題がないようだ。バックグラウンドの処理時間がそれだけ少なくなるが殆ど影響がない。経過時間の表示はどうする。グラフィックLCDでないのでプログレスバーは作れないか。いや、16字あるので10%づつのキャラクター表示で十分さまになるはずだ。演奏時間の計算は、フラッシュがまだまだあるので心配ない。ふむふむ、これは楽しみなことになってきた。経過時間表示が出来れば、これは大威張りだ。胸を張って3号機と言える。これまでのプレーヤーもソフトを替えるだけで恩恵に与ることができる。EAGLEにはだいぶ慣れた(12/18/09)プリント基板制作の作業状況である。久しぶりにEAGLEを開く。秋月の小さなフォンジャックのライブラリを制作する。EAGLEは本体の回路図エディターや、基板エディターより、このライブラリエディターの方が癖があって難しい。シンボルファイルから作り始め、パッケージとすすんで最後にディバイスファイルを完成させる。この順番を間違えて既存のデータから部品を作ろうとするととんでもない目に会うのは経験済みだ。今度は、何度か失敗はしたものの、何とかディバイスファイルまで出来た(慎重を期すため、公開は実際に部品が載ってからにする)。次は、このジャックを入れた全体のレイアウトである。スケッチではうまく載りそうだったがやってみるまではわからない。部品をつめて2連VRの場所を探す。使い勝手の問題もある。変なところに置くと使いにくくなる。出来上がっているボードファイルからripupで配線を、はずし、はずし試していく。うーむ、なかなか入らない。VRをハンダ面に持って行ったり工夫するが、パスコンが思ったより大きくスペースをとって入りきらない。結局、これもコロンブスの卵のようなもので、入力側のDACの裏側に、最終段のVRを乗せるとピッタリ納まることがわかった。昔は少しオーディオに凝っていたので、発振を恐れて入力(DAC)と出力(VR)を近づけるのに抵抗があって、これに思いつかなかった。考えてみれば、2号機もDACの横にフォンジャックが隣接していても何の問題もない。高周波ではないので問題ないだろう。2日ほど熱中してEAGLEのレイアウトは当面完成した。