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:// あ〜ハンダづけしないと〜面倒だなぁ〜 GWが終わるなぁ〜 ほら、終わった・・・ |