.include "m8def.inc"

.def const_0 = r0
.def const_1 = r1

.cseg
.org 0

//=================================================
//=================================================
/*(1)*/   rjmp RESET                             //
/*(2)*/   rjmp INT_0                             //
/*(3)*/   rjmp INT_1                             //
/*(4)*/   rjmp Timer2_comp                       //
/*(5)*/   rjmp Timer2_OVF                        //
/*(6)*/   rjmp Timer1_CAPT                       //
/*(7)*/   rjmp Timer1_COMPA                      //
/*(8)*/   rjmp Timer1_COMPB                      //
/*(9)*/   rjmp Timer1_OVF                        //
/*(10)*/  rjmp Timer0_OVF                        //
/*(11)*/  rjmp SPI_END                           //
/*(12)*/  rjmp USART_RXC                         //
/*(13)*/  rjmp USART_UDRE                        //
/*(14)*/  rjmp USART_TXC                         //
/*(15)*/  rjmp ADC_END                           //
/*(16)*/  rjmp EE_RDY                            //
/*(17)*/  rjmp ANA_COMP                          //
/*(18)*/  rjmp TWI                               //
/*(19)*/  rjmp SPM_RDY                           //
//=================================================
//=================================================


RESET:
	
	cli
	ldi r16, 0 mov const_0, r16
	ldi r16, 1 mov const_1, r16
	ldi r16, high(ramend) out sph, r16
	ldi r16, low(ramend) out spl, r16

//конфигурация таймера 1
    ldi r16, (1<<PB1)|(1<<PB2)|(1<<PB3)
	out DDRB, r16
	ldi r16, (1<<COM1A0)|(1<<COM1B0)
	out TCCR1A, r16
	ldi r16, 0x1F                   //константа задаёт частоту сигнала на выводе OC1A
	out OCR1AH, const_0
	out OCR1AL, r16
	ldi r16, 0x0F                   //константа задаёт частоту сигнала на выводе OC1B
	out OCR1BH, const_0               
	out OCR1BL, r16
	ldi r16, (1<<WGM12)|(1<<CS10)

//конфигурация таймера 2
	ldi r17, 0x0A                   //константа задаёт частоту сигнала на выводе OC2
	out OCR2, r17
	ldi r17, (1<<COM20)|(1<<WGM21)|(1<<CS20)
    
//запуск таймера 1
	out TCCR1B, r16                   

//запуск таймера 2
	out TCCR2, r17
    
	sei

//---------------------------------------------------------------------------
MAIN:
 

rjmp MAIN
//---------------------------------------------------------------------------




/////////////////////////////////////////////////////////////////////////////
//Подпрограммы обработки прерываний.

INT_0:
reti
INT_1:
reti
Timer2_comp:
reti
Timer2_OVF:
reti
Timer1_CAPT:
reti
Timer1_COMPA:
reti
Timer1_COMPB:
reti
Timer1_OVF:
reti
Timer0_OVF:
reti
SPI_END:
reti
USART_RXC:
reti
USART_UDRE:
reti
USART_TXC:
reti
ADC_END:
reti
EE_RDY:
reti
ANA_COMP:
reti
TWI:
reti
SPM_RDY:
reti
