;---------------------------------------------------------------------------- ; invtest.asm for tiny15L ; 赤外線センサーの出力をAVRに入力して反転出力 ; PB3:入力(負論理) ; PB0,PB1,PB2,PB4:出力(正論理) ;---------------------------------------------------------------------------- .include "c:\avrtools\appnotes\tn15def.inc" .def temp = r16 ;r0からr31までが汎用レジスタ ;だがすべての命令が使えるのはr16からr31まで .org 0 rjmp reset ;パワーオンリセット reti ;ATtiny15Lには8つの割り込みがあるがすべて未使用 reti reti reti reti reti reti reti reset: ;-- OSCCALレジスタに発振周波数校正値をセット -- ldi temp, $3F out EEAR, temp sbi EECR, EERE in temp, EEDR out OSCCAL, temp ldi temp, 0b00110111 out DDRB, temp ;PB3のみ入力 ldi temp, 0b00001000 out PORTB, temp ;PB3 pull-up ;-- 入力チェック --------------- loop: in temp, PINB sbrc temp, 3 rjmp out_l ;-- 入力がLowならHighを出力 ---- out_h: ldi temp, 0b00010111 out PORTB, temp rjmp loop ;-- 入力がHighならLowを出力 ---- out_l: ldi temp, 0 out PORTB, temp rjmp loop