以前[avr76]でアノード・コモンLEDを使っていました、入力回路との併用はカソード・コモン(現在はほとんどこれ!)でも使えるか試してみました。
使いたい回路に付けたのですが、すっかり忘れて作動まで結構時間が掛かりました(以前のメモを見ればよかった・・!)。結局、おなじようなプログラムに落ち着き、動作するようになった。続けて逆側(アノード側)にも付けて動作するのか試して見ました。いずれも作動しました。
再度ここで手順を並べておきます。
[カソード側の例]
* 必要によってPortを保存する。
* Port の変更[input]
* pull up
* 7segments=L
* wait 1MHz=5ck(5μS)
* in [PinD]、必要によってDATAを逆にする(COM)。
* Portを戻す。
* 必要なら、初期状態に戻す。
[アノード側の例]
* 基本的にカソード式と同じ。
* Waitは1mSが必要だった。○アノード側にSWを付ける場合何故か時間が必要で誤動作した。500μS以上必要で安全を見て1mSとする。
○スイッチは[L=アクテイブ]として使う。
○[avr119]とは異なり、ここのはリアルタイムに受付処理をする物です。
プログラム [サンプル] プログラム(続き) ;***** 05/25 SW check to Flag ldi temp,0b01000110 ;PD3.4.5 check out DDRD,temp ldi temp,$38 ;pull up out PortD,temp clr temp out PortB,temp ;7segments=L rcall wait ;[over 5uS] ;----------------------------------------------- in flag,PinD ; com flag andi flag,$38 ;mask & flag set ldi temp,$7e ;0b01111110 out DDRD,temp ; ldi temp,$38 ;set again out PortD,temp ;-----------------------------------------------2006/5/27
もどる [MENU]