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セグの表示から? |