2016/05/08(SUN) 【Nチビ】シフトインジケータ(暁の蜂起編)
前回、タイマー割込みでクルクルするところまで出来ました。
次はスイッチ入力で、4、5、6と表示するようにプログラミング。
結局。入力割込みを使うことにしました。
で、
「4」を表示
フォト

「5」を表示
フォト

「6」を表示???
フォト

RA4がオープンドレインで、プルアップして電源もらっているんですが
そのせいかな?うまく光りません。
抵抗値をいろいろ変えてみたけど結局だめ。
んじゃ、RA4の出力はRB0を使うように変更。
回路も変更。
フォト

あ、ちなみに今までプログラムは
スイッチ入力をプルダウンで書いてましたが
回路的にはプルアップなんで、そこも修正。

無事に6の出力に成功!
フォト

う〜む。プログラム的に面倒。。。
7セグなんで7つ出力すればいいんだけど
PORTAは、RA5が入力オンリーポートで
RA4がオープンドレインと・・・
そうなるとPORTAは出力が6つじゃん・・・
ちなみにPORTBを入力に使っているのは
RB4〜RB7が入力割込みが使えるポートだから。
というのを踏まえてプログラムも見直しです。
この辺は、お約束。
フォト

変数とリテラルの宣言
フォト

プログラムの先頭。いきなりGOTOしてますが・・・
フォト

割込み処理。タイマー割込みと入力割込みを処理しています。
フォト

初期化処理。各レジスタを設定しています。
あとメインルーチンはいつもながら空っぽです・・・
フォト

WAIT処理は変わらず・・・
フォト

入力の判定処理。
XOR使うように修正。前までのは動かなかった・・・www
フォト

クルクルの処理。カウントダウンしていって
それによりPC(プログラムカウンタ)をイジって出力を決めています
フォト

本当はPORTAに出力するだけ十分だったんだけど
RA4が使えないので
RA4出力の値をRB0に出力するようにしゅうせい。
フォト


↓こんな感じです。
http://www.246.ne.jp/~maruyama/go-a-head/red/Sind/

あ〜ハンダづけしないと〜面倒だなぁ〜
GWが終わるなぁ〜
ほら、終わった・・・