.include "D:\AVR\avrasm\appnotes\tn2313def.inc"
.def     TMP=R16
.def     TMP1=R17
.def     TMP2=R18
.def     TMP3=R19

.def     KOF=R21
.cseg
.org 0
	rjmp	RESET
	rjmp	INT0
	rjmp	INT1
	rjmp	TIMER1_CAPT
	rjmp	TIMER1_COMPA
	rjmp	TIMER1_OVF
	rjmp	TIMER0_OVF
	rjmp	USART0_RX
	rjmp	USART0_UDRE
	rjmp	USART0_TX
	rjmp	ANALOG_COMP
	rjmp	PCINT
	rjmp	TIMER1_COMPB
	rjmp	TIMER0_COMPA
	rjmp	TIMER0_COMPB
	rjmp	USI_START
	rjmp	USI_OVERFLOW
	rjmp	EE_READY
	rjmp	WDT_OVERFLOW
;RESET:
INT0:
INT1:
TIMER1_CAPT:
;TIMER1_COMPA:
TIMER1_OVF:
TIMER0_OVF:
USART0_RX:
USART0_UDRE:
USART0_TX:
ANALOG_COMP:
PCINT:
TIMER1_COMPB:
TIMER0_COMPA:
TIMER0_COMPB:
USI_START:
USI_OVERFLOW:
EE_READY:
WDT_OVERFLOW:
	Reti

;****************************************************
; ИНИЦИАЛИЗАЦИЯ
;****************************************************
RESET:
	Ldi	TMP1,0	;задержка запуска после сброса
	Ldi	TMP2,0
l_res:	Dec	TMP1
	Brne	l_res
	Dec	TMP2
	Brne	l_res

	Ldi	TMP,60
	Out	DDRD,TMP
	In	KOF,PIND
	Adiw	ZL,8 ;KOF
	Ldi	TMP,1   ;настройка портов
	Out	DDRB,TMP

	Ldi	TMP,0b01000000	;разрешить прерывание компаратора
	Out	TIMSK,TMP

	Ldi	TMP,0b00000101	;тактовый сигнал = CK/1024
	Out	TCCR1B,TMP

	Ldi	TMP,0x72	;инициализация компаратора
	Out	OCR1AH,TMP
	Ldi	TMP,0x71
	Out	OCR1AL,TMP

	Ldi	TMP,RamEnd	;установка указателя стека
	Out	SPL,TMP

	Ldi	TMP1,0	;инициализация индикатора

	Ldi	TMP,0	;обнуление таймера
	Out	TCNT1H,TMP
	Out	TCNT1L,TMP

	Sei	;разрешить прерывания


;****************************************************
; ОСНОВНОЙ ЦИКЛ
;****************************************************
INF:	Cpi	ZL,0	;сравнение счетчика сбросов с конст.
	Brne	ON
	Cpi	ZH,0
	Brne	ON
	Ldi	TMP3,0
	out	PortB,TMP3
	Rjmp	INF
ON:	Ldi	TMP3,1
	Out	PortB,TMP3
	Rjmp	INF
;****************************************************
; ОБРАБОТЧИК ПРЕРЫВАНИЯ КОМПАРАТОРА
;****************************************************
TIMER1_COMPA:
	Ldi	TMP,0	;обнуление таймера
	Out	TCNT1H,TMP
	Out	TCNT1L,TMP
	Cpi	ZL,0	;сравнение счетчика сбросов с конст.
	Brne	NPAS
	Cpi	ZH,0
	Brne	NPAS
	Reti
NPAS:	Ldi	TMP,1
	Sbiw	ZL,1
	Reti