2018/5/15(TUE) 【後方排気】SI:シフトインジケーターをソフトウェア設計
引き続きソフトウェア設計。
まずはザックリとソフトウェアの構成について
1)メイン処理
 初期化をして、メインループで表示処理を定期的に呼ぶ

2)割り込み処理
 タイマー割り込みと入力割り込みを振り分けを行う

3)表示処理
 7セグに指定されたパターンを出力する

4)タイマー割り込み処理
 エンジン回転数と車速から表示するパターンを決定する
 エンジン回転数と車速のカウンタをリセットする

5)ホールIC入力処理
 車速のカウンタをカウントアップする

6)エンジン回転数パルス入力処理
 エンジンパルスのカウンタをカウントアップする。
 
こんな割り振りで大丈夫かな?
まぁ細かい演算とかもルーチンとして分けると思うけど
で、
タイマーの設計
1325ms毎に表示をさせようかと
理由は以下の通り
 ・1325msにタイヤが1周すると5km/h
 ・計算がcharサイズ(1バイト)で収まる
  ※MAX190km/hくらいとした場合
PIC16F627Aには16ビットタイマーとし
TMR1が使えるので、次のように仮決め
マイコンのクロック数:4MHz
そうするとタイマーの1カウントは1μsとなる
(1 ÷ 4 MHz) * 4サイクル
だったかな?
で、プリスケーラーの設定で1,2,4,8倍が選択できるので
8倍としてタイマーの初期値を32411(H'7E9B')とすると
265ms毎にタイマー割り込みが発生する
 265 ms × 5 = 1325 ms
なので、5回割り込みが発生で処理すればいいようになっています

次に出力のデータ
7セグはこんな感じなので
フォト

出力するパターンをデータ化すると以下の通り
あ、ビットが落ちているところが光ります
フォト

RA5は入力専用ポートなので使わないので
それを除いたデータのパターンとなっています。

また測定不能の時は
クルクルを表示させるつもりなので
クルクルパターンのデータも
フォト

大体こんなんでプログラムが掛けるかな?
プログラム書くときにいろいろ壁にぶつかりそうだけど・・・
あと、今回は段階的に実装していった方がよさそうだなぁ〜
まずは、7セグの表示から?