チカラの技術

電子工作やプログラミング

ビットマップフォントでLCDにファイル名を表示。

先日,FATFSにLFN機能を搭載する事が出来ました。
これでロングファイルネームが扱えます。
 
本日はFATFSの文字コードから、ビットマップフォントを呼び出し、LCDに表示します。


シフトJISコードについて
  FATFSから渡される文字コードShift_JISコードです。
 ShiftJISコードは、ひらがなや漢字などの全角文字部分は2バイトの構成になっています。
 
 コード表を見て頂ければ分かるのですが、
 2バイトコードは1バイトコード(ASCIIコード互換)と競合しないように
 最上位4bitが0~7とa~dを避けるように配置されています。
 
 よって、最初の1バイトを確認すればそれが1バイトコードか2バイトコードかが判別できます。


○ビットマップフォントについて
 1文字をバイナリの値でドットを打つように表すフォント形式です。
 詳しくは回路師さんのブログが大変参考になるのでご覧ください。
 また、こちらのブログではJISX0213用bdfフォントマイコンで扱いやすい形に
 変換したバイナリファイルを配布されていますので利用させて頂きました。 
 
 上記のビットマップフォントは2バイトコードのみの対応であるので、
 半角と全角の混在したファイル名を表記する為には
 1バイトコードのビットマップフォントも必要です。
 
 1バイトコードは後閑さんが電子工作の部屋で用意してくれているフォントを利用させて頂きました。
 リンク先の「PIC(16bit)→PIC24F製作例→2.4/2.8"QVGA液晶表示器」の
 ページの一番下にフォントを含むライブラリが有ります。
 
○フォントの記憶領域
 1バイトコードのフォントデータは4.6kByteと小さい為、高速に読み出せるROMに置き、
 2バイトコードのフォントデータは650kByteと大きなファイルの為、SDカードに置きました。

○プログラム書いてみました。
 コードはブログに載せるには長文過ぎるのでアップロードしてみました。
 もし良かったらご覧ください。
 
 このwhite_string_LCD関数にFATFSのf_readdir関数で得られるLFN文字列を渡せば
 日本語ファイル名をLCDに表示する事が出来ます。 

○出来ました。
 自分で言ってて「日本語でOK」な内容になってきたのでこの辺で表示した画面を載せてみます。
 
イメージ 1
 
図1.邪気眼フォルダの内容。これは酷い・・・
難しい漢字も表示出来るよ!
 
 このように漢字や英数字の混在したファイル名を表記する事が出来ます。
 あと残っている目標はファイル名のソートだけです。
 
 それでは皆さん