以前に作成した、パルス出力テスト、エンコーダー入力、LCD表示を組み合わせて
単独で動作するパルス出力を作成しました。
以前に作ったものを組み合わせるだけなので、簡単です。
LCD表示はビットマップ表示なので、適当なフォントを用意しました。
ビットマップ表示は、とても柔軟な表示が行えるのですが、自分で「絵」をデザイン
する必要があります。
そこで、以前にビットマップ表示に適した画像エディターを探しました、フリーで、
非常に使いやすいエディターがありましたので紹介しておきます。
※Windows版です、Mac版は、あまり良いものを探せませんでした。
EDGE
※ソフトは2009年が最終版ですが、機能は揃っており、不具合も無いようです。
「ドット絵エディタ」は256色まで対応ですが、モノクロの絵や、アイコンのよう
なグラフッックにはむしろ最適です。
グリッドを設定する機能もあり、任意サイズのグラフィックを描くのに便利です。
上のように、1つのファイルにまとめて配置して、切り出して使います。
切り出して、ソースコードに埋め込むのに、bmc も作成してあります。
※このソフトは、かなり昔に実装して、少しづつ改変しています。
※コンパイルは大変なので、実行バイナリーを用意してあります。(build/bmc.exe)
※必要な DLL を用意してあります。
※コンパイルの方法は、「MSYS2 で俺俺フレームワーク、アプリをコンパイルする」を参照して下さい。
※Mac版は、brew を入れれば、Windowsと同じようにコンパイルできます。
bmc では、以下のように、切り出す位置とサイズを指定して、テキスト形式に変換
しています。
※bitmap/Makefile
bmc -offset 0*20,0*32 -size 18,32 -header 8 -text -c_style nmb_0 font32.png font32.h bmc -offset 1*20,0*32 -size 18,32 -header 8 -text -c_style nmb_1 font32.png -append font32.h bmc -offset 2*20,0*32 -size 18,32 -header 8 -text -c_style nmb_2 font32.png -append font32.h bmc -offset 3*20,0*32 -size 18,32 -header 8 -text -c_style nmb_3 font32.png -append font32.h bmc -offset 4*20,0*32 -size 18,32 -header 8 -text -c_style nmb_4 font32.png -append font32.h bmc -offset 5*20,0*32 -size 18,32 -header 8 -text -c_style nmb_5 font32.png -append font32.h bmc -offset 6*20,0*32 -size 18,32 -header 8 -text -c_style nmb_6 font32.png -append font32.h bmc -offset 7*20,0*32 -size 18,32 -header 8 -text -c_style nmb_7 font32.png -append font32.h bmc -offset 8*20,0*32 -size 18,32 -header 8 -text -c_style nmb_8 font32.png -append font32.h bmc -offset 9*20,0*32 -size 18,32 -header 8 -text -c_style nmb_9 font32.png -append font32.h bmc -offset 3*20,1*32 -size 19,32 -header 8 -text -c_style txt_hz font32.png -append font32.h bmc -offset 2*20+9,1*32 -size 9,32 -header 8 -text -c_style txt_k font32.png -append font32.h
変換された形式は、ビット単位で、状態を表現したシンプルな構造で、common/monograph.hpp、
draw_mobj で描画する事が出来ます。
このソフトでは、色々なオプションを用意してあります。
・BDF 形式のフォントの読み出し。
・ディザリング機能
・GUI で確認する機能
など
BitMap Converter Copyright (C) 2013/2015, Hiramatsu Kunihito Version 0.75 usage: bmc.exe [options] in-file [out-file] -preview,-pre preview image (OpenGL) -header size output header -text text base output -c_style symbol C style table output -offset x,y offset location -size x,y clipping size -bdf BDF file input -append append file -inverse inverse mono color -dither ditherring -verbose verbose
さて、肝心な、パルス出力ですが、出力する周波数範囲は、かなり広いので、エンコーダーだけ
では可変範囲が広すぎます、そこで単位毎に自動でレンジを切り替えて、増減する量を動的に変
えています。
20Hz~99Hz 1単位
100Hz~999Hz 10単位
1000Hz~9999Hz 100単位
10000Hz~99999Hz 1000単位
100KHz~999KHz 10KHz単位
1000KHz~10000KHz 100KHz単位