;-------------------------------------------------------------------------------
; comptest0.asm for ATtiny15L
; 電源電圧が3Vに低下したらLEDを点灯して知らせる
; PB1: 電池分圧入力
; PB2: 電源電圧低下時Low出力
;-------------------------------------------------------------------------------

.include 	"c:\avrtools\appnotes\tn15def.inc"

.def	temp	= r16

.org	0

	rjmp	reset
	reti
	reti
	reti
	reti
	reti
	reti
	reti
	reti

reset:
	ldi	temp, 0b00111101
	out	DDRB, temp		;PB1を入力に設定
	ldi	temp, 0b00000000
	out	PORTB, temp		;内部プルアップを使用しない
	sbi	PORTB, 2      		;PB2をHigh(LowでLEDを点灯)
	ldi	temp, 0b01000000
;		        ||  | ||________ACIS1,ACIS0: 00 = トグル(立ち上がり、立ち下がりで出力)
;		        ||  |___________ACIE: 0 = アナログコンパレータ割り込み不許可
;		        ||______________ACBG: 1 = 内部基準電圧選択
;		        |_______________ACD: 0 = アナログコンパレータ許可
	out	ACSR, temp		;アナログコンパレータ設定

loop:
	in	temp, ACSR		;ACSRレジスタから入力
	sbrs	temp, 5			;bit5(ACO)がセット(1)なら次をスキップ
	rjmp	lp1
	cbi	PORTB, 2      		;PB2をLowに(LEDを点灯)
	rjmp	loop
lp1:	sbi	PORTB, 2      		;PB2をHighに(LEDを消灯)
	rjmp	loop