12ピクセル漢字フォント

ATMEGA版データロガーだが、基本的なとこは大体出来て、図面入力とアートワークやらないと駄目なんだがー、多少気になってる部分をチョイチョイ作っていた。

データロガーではあまり使わないのだが、ファイル選択関係を実装していて、FatFSでは、小さいマイコンでも可能なような配慮が沢山あっていたれりつくせりだ。
ファイル選択はしなくても、ファイルサイズを観たりするくらいはあっても良い、そこで、ディレクトリーを移動したり、選択してファイルサイズを表示したり出来るように一通り作ったが、2バイトコードをどうするかが問題となっていて(データロガーが作るファイルは半角文字なので本来関係無いのだが)実験の過程では、2バイトコード(漢字など)はメッシュの箱として表示していた、だけど、あまりに見た目が悪いし文字化けしてるみたいで痛い、そこで、漢字の表示は出来ないものかとちょっと考えてみた。
※MP3のデコーダーを載せて音楽再生をする目的もある、その場合はどうしても漢字の表示は必須だ!
とりあえず、現状では、6×12ピクセルの半角文字を表示している、そこで12×12の漢字フォント(蕨12)をネットでゲットした。(他にも色々あるようだが、とりあえず・・)
次に、Shift-JISのコードページに並べるとどのくらいの容量になるのかBDFファイルを読み込むツールを作って検証した。
※Shift-JISは漢字コードを効率良く並べられ、コードからビットマップの位置を特定するのが簡単で良い。
容量は、「138キロ」、うーーんこれでは、1MBitsのEEPROMに入らない・・、秋月で売っているシリアルのEEPROMに収めようと思ったのだが無理がある。
でも折角ツールを作ったのだからと、漢字のビットマップファイルをSDカードに入れて、SDカードから読みながら表示させてみた。

結果は思ったより上々で、多少もたつくが、漢字の入ったファイル名を表示出来るようになった。

この「ファイラー」では、横128ピクセルより長くなるファイル名は自動でスクロールするようにしてあるが、スクロールを始めると、かなり重く、スピードが遅くなっている(処理落ち)そこで、キャッシュバッファを設けて速度を改善してみた。
これで、普通に表示出来ている。

自分はゲーム屋なので、ボタンを押した場合の反応とか、画面の切り替わりとか、その辺りのクイックな感じと操作性、画面の見栄えなどに比重を置いてる、まぁ見栄えは、グラフィックデータに凝ってると時間を浪費すると思うので、後から差し替えするつもりで、適当なのだが・・
画面は液晶でもゲームシステムと同じ同期式としてプログラムを作っている、画面の更新周期は33.3Hz(3/100Hz)で、必ずこのレートで全画面を更新している為、点滅や移動がこのフレームレートで毎回行われている。
・フレームバッファの内容を全て液晶に転送
・フレームバッファを全面クリア
・オブジェクトをフレームバッファに描画(各シーンタスク毎)
・時間同期
こんな順番で、グルグル動いている、液晶の反応が多少鈍い為、速い速度でオブジェクトを動かすとかすれるのだが・・

しかし、ファイラーのような構成で、この仕組みに当てはめると、ファイル名を保持しておくバッファなども必要になってしまう、そこで、ファイラーでは、フレームバッファの消去をやめて、ボタンが押されて状況に変化が起こったら画面を書きかえるようにした、その為、ファイル選択では、表示負荷により動作が遅くなっているが、まぁこれは仕方無い・・

それでもロングファイル名が表示出来るのはありがたい。

-----
以前にPNGファイルから液晶用のビットマップを作成するツールにBDFファイルの変換を組み込んだ。
今回、BDFファイルの読み込みでは、12×12ピクセル、JISコードとして機能する、コード体系が違う場合とか、ピクセルが違う場合はソースコードを修正する必要があるが、このツールのソースコードもアップしてある。

AVR とツールのソースなど

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください