.INCLUDE "tn13DEF.INC"
.list

.def tmp=r16
.def tmp0=r17
.def cnt=r19

.cseg
.org $0a

RESET:
	ldi tmp,low(RAMEND)
	out spl,tmp


.macro   OUTI
	LDI   R16,@1
	OUT   @0,R16
.endm
	OUTI   ADCSRA,(1<<ADEN)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS0) ;Включаем АЦП, его прерывание, настраиваем предделитель тактовой частоты
	OUTI ADCSRB,0 ;источник автосрабатывания отключен
	OUTI   ADMUX,(1<<ADLAR)|(1<<MUX1) ;выравнивание влево (ADCH - 8 старших бит), 1-й канал

	ldi tmp,0b00001111
	out ddrb,tmp

	sei

main:
						;там где надо прочитать АЦП пишем:
	SBI   ADCSRA,ADSC	;выставить бит начала преобразования
						;после чего, по прошествии нескольких тактов (зависит от предделителя) произойдет прерывание АЦП
	out portb,r24

	rjmp main

adc_inc:
	IN R24,ADCH
	reti
;************* 4мГц *************
delay_s:
	rcall delay_100ms	
	rcall delay_100ms	
;	rcall delay_100ms	
;	rcall delay_100ms	
;	rcall delay_100ms	
;	rcall delay_100ms	
;	rcall delay_100ms	
;	rcall delay_100ms	
;	rcall delay_100ms	
;	rcall delay_100ms	
	ret

delay_100ms:
	ldi tmp0,$a0
	rjmp delay_ms

delay_10ms:
	ldi tmp0,$0a

delay_ms:
	clr tmp
	rcall delay_us
	rcall delay_us
	rcall delay_us
	rcall delay_us
	subi tmp0,1
	brne delay_ms
	ret

delay_100us:
	ldi tmp,$a0
	rjmp delay_us
delay_10us:
	ldi tmp,$0a
delay_us:
	subi tmp,1
	nop
	brne delay_us
	ret

;		Address Labels Code Comments
.org $00
rjmp RESET ; Reset Handler
	reti	;rjmp EXT_INT0 ; IRQ0 Handler
	reti	;rjmp PCINT0 ; PCINT0 Handler
reti ;rjmp TIM0_OVF ; Timer0 Overflow Handler
	reti	;rjmp EE_RDY ; EEPROM Ready Handler
	reti	;rjmp ANA_COMP ; Analog Comparator Handler
	reti	;rjmp TIM0_COMPA ; Timer0 CompareA Handler
	reti	;rjmp TIM0_COMPB ; Timer0 CompareB Handler
	reti	;rjmp WATCHDOG ; Watchdog Interrupt Handler
rjmp ADC_inc ; ADC Conversion Handler

.exit
