レジューム機能はファイル番号を進めるだけなので、この部分だけ関数として切り出す。してソフトウエアは汚くなっていくのだが、この際仕方がない。メディアの識別は、chaN氏のFatFSの内部関数にscan_files()というのがあったのでこれを利用させてもらった。ファイルサイズとファイル数をEEPROMに記録しておき、同じのときのみ同一メディアとみなして記録してあった再開番号を読み出しファイルを進める。このscan_filesという関数はなかなか良く出来ている。ルートディレクトリ上のファイルだけでなく、全てのサブディレクトリ下のファイルまで、再帰的に自分を呼び出してファイルを数え上げているのだ。最初、これに気がつかなくてディレクトリのあるディスクで暴走し、頭を捻ったが引数をリテラルにしてスキャンしているためとわかり、ファイルパスを収容するアドレスをバッファーに移してトラブルは解消した。マイコン用のファイルシステムなのでサブディレクトリ下のファイルは見えないものだとばかり思っていたがそうではなかった。いやいや恐れ入りました。午後から始めてその日の夜遅くには何とか動き始めた。EEPROMの関数も慣れてきたのかもうトラブルもない。ファイルのスキャンによる遅れも殆ど気にならない。一瞬のうちに頭出しが出来る。うーむ、これは便利だ。いつでも途中で止められる。去年の暮から始めた、DACチップによるCD音質のSDカードプレーヤープロジェクトはこれでほぼ所期の目的を果たしたようである。ブレッドボードにはちょうど同じ部品がワンセット残っているので2台目を作る選択肢もあるが、当研究所としてはそろそろ次の企画を考えたい。このあいだ付録基板のついた雑誌(インターフェース2009年5月号)をまた買ってしまってARMの32ビットプロセッサーが2つも揃ってしまった。FPGAのCRTCか。なるとAVR研究所というのも名前を換えないといけない。上記のレジューム機能を入れたプレーヤーのソフトウエア(V2)を、AVRstudioのプロジェクトファイルの形で下に置きます。クロックは16Mhzになっています。クロックの変更は、メインファイル(SDPLAY328.c)の定数定義の部分で、SYSCLKを変えるだけですべての時間依存のステートメントが調整されるようになっています。プロジェクト名が前のバージョンと同じなので気をつけてください。(火)実装版SDカードPCMプレーヤーが動いた形になっていく喜び(3/21/09)少しづつ実装を進めている。このあいだ作ったアートワークは全体を見るのは良いが、ピンアサインを正確に確認できない。電源部、クロック部、DACまわりと部分的なアートワークを描き直したが、これは思った以上に効果があった。細かいアートワークを見間違えて起きる配線ミスをなくせる。それとハンダ付けのときの作業が単純作業になって迷う必要がない。今回は両面基板で、チップコンデンサーを多用したので、正確な位置決めが特に必要で、部分アートワークを描いて十分確かめておけば、実際のハンダ付けは何も考えずに済む。最初は電源ラインだけ、部分的なアートワークを描いて作業していたのだが、アートワークを描く手間と時間以上の効果があって、そのあと殆どの部分もこの方法で実装した。今まで基板に載せてみていただけのフォンジャックやボリュウム、LCDを接続するピンヘッダー、ICソケット、SDカードソケットなどが次々に固定されていく。ひとつひとつの部品では感じなかった「命」のようなものが、こうして固定されて所定の位置に納まって来ると、段々部品に命が吹き込まれていくような気分がしてくる。これがものを作る喜びと言うのだろうか。これは単なる物ではない。間もなくSDカードに入れた音楽CDを再生する生き物に変身するのだ。期待と不安に胸をふくらませて、黙々とハンダ付けを続けていく。LCDの配線とSDカードの接続が集中するところも、それぞれ別のアートワークを描いたおかげで、予想したよりはるかに短い時間でハンダ付けが終了した。うむ、今度もパーフェクトゲームができるかな。あとは、ケースにつけるスイッチ基板の制作を残すだけである。電源を始めて入れる時の緊張がたまらない(3/22/09)今日は、久しぶりにテニスにでかけたが、途中から雨が降り出し中途半端に帰ってきた。いつもなら欲求不満がたまるところだが、今日ばかりは違う。プレーヤーの実装があとわずかで完成するのだ。テニス道具の後片付けもそこそこにハンダごてに電気を入れて工作を開始する。本体の基板にスイッチ基板とのコネクターを取り付け、電池フォルダから配線して通電テストが出来るところまで来た。スイッチ基板がなくてもコネクターにジャンパーピンをつければ電気が入れられる。タクトスイッチが動かなくても初期画面が出るかどうかのテストは出来る。気がせいてきて一刻も早く動くかどうか試したくなった。電子工作で最も緊張する最初の通電である。ウェブを見ていると色々な対応があって面白い。怖くてなかなか電気を入れられず一日置いてからやっと電気を入れたなどと書いてあるのを読むと、皆同じなのだなあと思わず笑ってしまう。高価な部品を沢山使った工作のときは確かにチェックを何度しても緊張するに違いない。今度のプレーヤーはそんな部品はないが、結構な手間はかかっている。動かなかったときの原因究明が大変だ。UARTなどのデバッグロジックが入っていない。ISPピンも基板にスペースがなく、つけていないのでMCUの動作確認も出来ていない。