レジューム機能はファイル番号を進めるだけなので、この部分だけ関数として切り出す。してソフトウエアは汚くなっていくのだが、この際仕方がない。メディアの識別は、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を変えるだけですべての時間依存のステートメントが調整されるようになっています。プロジェクト名が前のバージョンと同じなので気をつけてください。半年ぶりのブログ更新に漕ぎつけた(2019.09.19)研究所活動は停滞したままでCCDカメラ顕微鏡導入など(2019.02.08)ドングルのHFコンバーターでJJY標準電波は見えたか(2018.12.12)JJY電波を見るため、RF(高周波)の世界に踏み込む(2018.10.31)ESP8266のJJY電波時計のスケッチ公開(2018.10.02)コメントコメントを書く名前:メールアドレス:(ウェブ上には掲載しません)アドレス(URL):この情報を登録するコメントは記事投稿者が公開するまで表示されません。どのSDカードにも頭出し位置を記憶させる。