2018/5/16(WED) | 【後方排気】SI:シフトインジケーターをプログラム実装@ |
---|---|
まずは「3)表示処理 」から実装
メインループから定期的に呼び出される想定 ザックリとアルゴリズムを書くと (1)ニュートラルか?ニュートラルなら「N」を出力 (2)表示不能状態ならばクルクル表示 (3)上記条件以外ならばギアを出力 こんな感じ それをアセンブラで書くと・・・ で 出力パターンを引き出すルーチン Wレジスタに表示したいギア数を入れてコールします。 ニュートラルは「0」です。 こっちはクルクルパターンを引き出すルーチン こちらも表示するパターンの番号を Wレジスタに入れてコールします。 あ、その前に 定数と変数をプログラムの頭で宣言します。 各出力パターンを定数、リテラルとして定義します。 変数は2つ、 O_DATAは 1〜6速のどのギアなのか?を判断した結果が入ります 測定不能の場合は先頭ビットを立ててクルクル表示にします。 K_DATAはクルクル表示をタイマー割り込みで動かすための カウンタみたいなものです。 で変数は初期化処理にて初期化します。 O_DATAは0クリア、K_DATAには初期値の6を代入。 あとK_DATAはタイマー割り込みにてカウントします。 で、 ロジックを単純にしたかったので K_DATAは、6からカウントダウンして 0までいったら6に初期化します。 クルクルパターンを引き出すルーチンは そういう風に出来てます。 最初の「RETLW KURU0」は0番なので 使われることはないです。 あ、そうそう表示不能とは 速度が遅いとか回転数が低い時は ギアを特定できないので 表示不能としてクルクル表示をしようと思っています。 Nチビが1〜3速が表示できないので クルクルにしたので、それと同じですね。 |