2016/05/06(FRI) | 【Nチビ】シフトインジケータ(天下一武闘会編) |
---|---|
はい。前回、実車にて確認したところ
Nチビでは4〜6速までしか拾えそうもないということで 回路とプログラムを作り変えです。 入力は、4〜6速の3ビット入力なので PIC16F627AのPORTBの入力割込みを使おうかと。 割り込みに使えるのはRB4〜Rb7なので、それを使う。 また、7セグへのアウトプットはPORTAに変更。 あとRA5は入力専用なので使わない。 回路は↓こんな感じ PORTAの使い方をテーブルで表現すると ↓こんな感じ。 前回、出力は4ビットでいいとしたけど 一応、7ビット使うこととした。 で、回路に合わせてプログラムも変更 まずは、ヘッダとか宣言部分。 リテラルは先ほどの表に合わせました。 続いてが割り込みハンドラ RB4〜6の入力に変化があった時に割り込みが発生 チャタリング対応して、PORTAへの出力 続いて初期化ルーチン。 各レジスタの初期化の順番が この前のテストプロのデバッグの結果を反映してます。 あと割込みの設定が増えています。 ちなみにメインループは、空回りwww いつもながら、こんな処理で大丈夫なのか??? サブルーチン。 WAIT関連は変更なしです。 入力判定ルーチンです。 結局、おバカに判定処理をならべてます。 まぁ、ちょっとくらいROM/RAM、処理時間の無駄遣いでもいいでしょ? まだリソースに余裕があるわけだし。 念のため、入力をテーブルにしておく。 最後は、プログラムの締めです。 本当はプログラムをもっと見直したいけど まぁ単純な方がわかりやすいかな??? あ、回路的にはRA5とRB7はプルアップしておいた方がいいかな? いつもながら動作確認未です。 今度はコンパイルは確認しています。 |