« 【PICマイコン】7セグメントLEDで4桁表示 | トップページ | 【PICマイコン】7セグメントLEDで4桁表示(その3) »

2018/04/26

【PICマイコン】7セグメントLEDで4桁表示(その2)

ダイナミック点灯で表示できるようになったので、メモしておきます。


(参考)
【PICマイコン】7セグメントLEDで4桁表示

先づ、いろいろな組み合わせでI/O出力をON/OFFして、意図した表示になることを確認します。

次に、main()のソフトウェアループで、固定した4桁数字のダイナミック表示を確認します。
処理の流れは、次の通りです。

1桁分を表示します。
 表示する4桁数字を1桁毎に配列に格納します。
 LEDを全て消灯します。
 1桁分の数値を設定します。
 対応する桁を点灯させます。
 該当する場合には、小数点を点灯させます。
 次の桁に状態を遷移させます。
2m秒待ちます。
繰り返します。

待ち時間を変えると、ちらつき具合も変わるので、好きな値にします。

次に、待ち時間以外を割り込みルーチンに移設して、ダイナミック表示を確認します。
割込み処理内の状態変数は、static uint16_t xxxxで宣言して値が保持されるようにします。
処理の流れは、次の通りです。

Timer0で1mS毎に割り込みをかけます。
割り込み回数をカウントし、2回(=2mS)になったら1桁分を表示します。
 表示する4桁数字が更新されている場合には、1桁毎に配列に格納します。
 LEDを全て消灯します。
 1桁分の数値を設定します。
 対応する桁を点灯させます。
 該当する場合には、小数点を点灯させます。
 次の桁に状態を遷移させます。
割り込みから、復帰します。

メインのループで、表示する数値を10mS毎にカウントアップします。(1S毎だと9999秒かかります。。)

動作が確認できたので、led7seg.cとled7seg.hにまとめて、timer0.c、timer0.h、interrupt_manager.c、interrupt_manager.hと組み合わせて使えるように、手持ちのライブラリに追加する予定です。


続く。。

« 【PICマイコン】7セグメントLEDで4桁表示 | トップページ | 【PICマイコン】7セグメントLEDで4桁表示(その3) »