.include "m16def.inc"
.def  temp =r16
.def  komp =r17
.def bc=r18
.def bc1=r19
.cseg
.org $000 jmp  RESET 			; Reset Handler
/*
.org $002 jmp  EXT_INT0         ; IRQ0 Handler
.org $004 jmp  EXT_INT1         ; IRQ1 Handler
.org $006 jmp  TIM2_COMP        ; Timer2 Compare Handler
.org $008 jmp  TIM2_OVF         ; Timer2 Overflow Handler
.org $00A jmp  TIM1_CAPT        ; Timer1 Capture Handler
.org $00C jmp  TIM1_COMPA       ; Timer1 CompareA Handler
.org $00E jmp  TIM1_COMPB       ; Timer1 CompareB Handler
.org $010 jmp  TIM1_OVF  */     ; Timer1 Overflow Handler
.org $012 jmp  TIM0_OVF         ; Timer0 Overflow Handler
/*
.org $014 jmp  SPI_STC          ; SPI Transfer Complete Handler
.org $016 jmp  USART_RXC        ; USART RX Complete Handler
.org $018 jmp  USART_UDRE       ; UDR Empty Handler
.org $01A jmp  USART_TXC  */    ; USART TX Complete Handler
.org $01C jmp  ADC321			; ADC Conversion Complete Handler
/*
.org $01E jmp  EE_RDY 			; EEPROM Ready Handler
.org $020 jmp  ANA_COMP         ; Analog Comparator Handler
.org $022 jmp  TWSI 			; Two-wire Serial Interface Handler
.org $024 jmp  EXT_INT2 */      ; IRQ2 Handler
.org $026 jmp  TIM0_COMP        ; Timer0 Compare Handler
//.org $028 jmp  SPM_RDY        ; Store Program Memory Ready Handler

.org $02A     
RESET:   
	ldi  r16,high(RAMEND) 		; Main program start
	out  SPH,r16         		; Set Stack Pointer to top of RAM
	ldi  r16,low(RAMEND)
	out  SPL,r16
	sei 						; Enable interrupts

;nastroika porta D na vvod 
ldi temp,0xff
out ddrD,temp
out portd,temp
;nastroika porta A,C na vvod
ldi temp,0x00
out ddra,temp
out ddrc,temp
;nastroika timera
ldi temp, 0xf0
out ocr0,temp	
ldi temp,0x03	
out timsk,temp
ldi temp,0b00000011  	 		;prescaler 64  or less
out tccr0,temp
;nastroika adc

LDI TEMP, 0B10101011		
OUT ADCSRA, TEMP
LDI TEMP, 0B01110000			;0B01000000
OUT ADMUX,TEMP
LDI TEMP ,0X00
OUT SFIOR,TEMP


				main:
				in temp,pinc
				cpi temp,0xff
				breq main
				inc bc1
				cpi bc1,1
				breq ledoff
				cpi bc1,2
				breq ledon
				rjmp main
ledoff:
ldi temp,0xff
out ddrD,temp
out portd,temp
ldi temp,0x00
out ddrD,temp
ret
ledon:
ldi temp,0xff
out ddrD,temp
clr bc1
ret


/*ext_int0:
ext_int1:
tim2_comp:
tim2_ovf:
tim1_capt:
tim1_compa:
tim1_compb:
tim1_ovf:*/ 
tim0_ovf:
ldi temp,0x00	//for stk500
out porta,temp
reti
/*spi_stc:
usart_rxc:
usart_udre:
usart_txc:*/ 
adc321:
in temp,adch
out ocr0,temp
reti
/*ee_rdy:
ana_comp:
twsi:
ext_int2:*/ 
tim0_comp:
ldi temp,0xff 	//for stk500 
out porta,temp
reti
/*spm_rdy:*/

