ファームウェアのコマンド

ファームウェア:LED表示機能

概要

ファームウェアはLEDマトリックスへの表示のために 2つのバッファを有している。 1つは 表示用のバッファlmbufで、 LEDマトリックスの各LEDの情報を保持している。 そのビット数は最大4モジュール分のLEDの数 16×32×4= 2,048bitに等しい。 もう1つは、シリアルポートから送られて来たビットデータを そのままスクロール表示する際のバッファとなる スクロールバッファ scbufである。 このバッファの内容を一度にlmbufに転送し、 表示を一度に切り替えるというような使い方もあるので、 scbufの容量はlmbufと同じにしてある。

ファームウェアでは 512μ秒毎に割り込みをタイマーで発生させ、 lmbufの内容を読出し、 LEDマトリックスに1ライン分の表示をさせている。 LEDマトリックスは16ラインで構成されるので、 512μ×16≒8m秒毎にLEDマトリックス全体の表示が行なわれることになる。

LEDマトリックス全体の表示が scmode_div回行なわれる毎に、 lmbufの内容の更新が行なわれる。 状態によって、scbufあるいはeepromから読出されたビットデータが lmbufにシフトインされる。

スクロールが停止しているときは、 lmbufを操作するコマンドによって、 表示を操作することができる。 lm_clear, lm_puts, lm_puts2などの コマンドによって、文字等を表示することができる。

sc_datasc_showコマンドを使って 任意のビットイメージを表示することもできる。

スクロール表示を行なうには、 sc_datasc_scroll, sc_endコマンドを使用する。


コマンド:lm_bright

用例:lm_bright 値

LEDの点灯時間を制御することで、明るさの設定を行なう。 値の0〜10の整数。 0が消灯で10が全点灯。 人の明るさの感覚に比例するように、 点灯時間は値の3乗に比例して変化する。


コマンド:lm_bright0

用例:lm_bright0 値
LEDの点灯時間を制御することで、明るさの設定を行なう。 値の0〜255の整数。 0が消灯で255が全点灯。 値に比例した時間だけ、LEDを点灯させる。


コマンド:lm_clear

用例:lm_clear

lmbufをクリアする。


コマンド:lm_off

用例:lm_off

LEDの表示を行なう512μS毎の割り込みを停止する。


コマンド:lm_on

用例:lm_on

LEDの表示を行なう512μS毎の割り込みを有効にする。


コマンド:lm_pget

用例:lm_pget {x座標 y座標 ...}

lmbufの指定された座標のドットがonかoffかを返す。 座標は複数指定可能。

対話例:
lm_pget 0 0 0 1
D 0 1
Ok.

ファームウェア v0.08以降


コマンド:lm_pexor

用例:lm_exor {x座標 y座標 ...}

lmbufの指定された座標のドットを反転する。 座標は複数指定可能。

コマンド例:
lm_pexor 0 0 0 1

ファームウェア v0.08以降


コマンド:lm_preset

用例:lm_reset {x座標 y座標 ...}

lmbufの指定された座標のドットをリセットする。 座標は複数指定可能。

コマンド例:
lm_preset 0 0 1 1 2 2 2 4

ファームウェア v0.08以降


コマンド:lm_pset

用例:lm_set {x座標 y座標 ...}

lmbufの指定された座標のドットをセットする。 座標は複数指定可能。

コマンド例:
lm_pset 0 0 1 1 2 2 2 4

ファームウェア v0.08以降


コマンド:lm_puts

用例:lm_puts 文字列...

LEDマトリックスの上半分に 5×8ドットのフォントで文字列を表示する。 英数字のみ表示可能

コマンド例:
lm_clear
lm_puts "Hello"

コマンド:lm_puts2

用例:lm_puts2 文字列...

LEDマトリックスの下半分に 5×8ドットのフォントで文字列を表示する。 英数字のみ表示可能


コマンド:sc_clear

用例:sc_clear [0|1]

lmbufとscbufのクリアおよびスクロールの停止を行なう。
引数で1が指定された場合 scbufのクリアのみ行なわれる (Ver1.04以降)


コマンド:sc_data

用例:sc_data data ....

scbufに引数で指定された値を格納する。 scbufの書きこみ可能な残りのデータ数を返す。 dataは最大4桁の16進数で、コマンドの最大長80文字を超えない限り いくつでも指定可能。

コマンド例:
sc_clear
sc_data 1 3 7 f 1f 3f 7f ff 1ff 3ff 7ff fff 1fff 3fff 7fff ffff
sc_data 5555 aaaa 5555 aaaa
sc_show

コマンド:sc_end

用例:sc_end {[0|1]}

スクロール表示の終了を指示する。 引数は、表示をスクロールアウト(スクロールさせて画面クリア)するか どうかで、1で行ない、0では行なわない。指定しなければスクロールアウトする。 sc_data,sc_scrollと組み合わせて使用する。


コマンド:sc_loop

用例:sc_loop

scbufの内容を繰り返し表示する。

sc_data 1 2 4 8
sc_data 8 4 2 1
sc_loop


コマンド:sc_mode

用例:sc_mode

現在のスクロールモードを返す。 ホストがスクロールの完了を待ったりするのに使用する。

モード説明
0SCMODE_NULL初期値、スクロール停止
1SCMODE_STOPスクロール停止
2SCMODE_CLEARlmbufクリア
3SCMODE_WAIT1スクロール開始前の待ち
4SCMODE_SCROLLスクロール中
5SCMODE_SCROLLOUTスクロールアウト中
6SCMODE_WAIT2スクロール終了後の待ち

対話例:
sc_mode
D 1
Ok.


コマンド:sc_scroll

用例:sc_scroll

scbufの内容をスクロール表示する。 表示されたデータはscbufから削除されていくので、 スクロールをつづけるには、sc_dataコマンドで データを送りつづける必要がある。 データが間に合わない場合、スクロールは停止し、データを待つ。 sc_endコマンドでスクロール表示を終了する。

コマンド例:
sc_scroll
sc_data 0550 0aa0
sc_data 0550 0aa0
sc_end

eepromに書きこまれたメッセージを表示するには rom_scrollコマンドを使用する。


コマンド:sc_show

用例:sc_show

scbufの内容をlmbufに転送し、表示する。 転送されたデータはscbufから削除される。

コマンド例:
sc_clear
sc_data 0ff0 1008 2004 2004
sc_data 1008 0ff0
sc_show

コマンド:sc_stop

用例:sc_stop

スクロールを停止する。 バッファのクリア等は行なわない。


変数:cmodule

値は 1〜4。 接続されているLEDモジュールの数を設定する。


変数:led_reverse

値は0または1。 値が1の時、LEDモジュールヘの表示を180度回転させる。


変数:scmode_div

値は1〜10程度。 表示を何回おこなうごとに1dotのスクロールを行なうかという値を 保持する。 H8/3664Fを使用した場合、約8mSに1回表示が行なわれるので、 scmode_div = 1 だとスクロール速度は 1dot/8mS となり、 1文字が16dot幅であれば 7.8文字/秒となる。 scmode_div = 10にすると、この速度を1/10にできる。


変数:scmode_wait1

スクロール開始時に、表示を始めるまでに 何dot分待つかという値。


変数:scmode_wait2

スクロール終了後に、次の表示を始めるまでに 何dot分待つかという値。


変数:scmode_verbose

スクロール関連コマンドでの デバッグ用メッセージ出力の制御。

商品の仕様、デザイン、価格は予告なく変更されることがあります。