;----------------------------------------------------------------------------
; 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