.INCLUDE "tn13DEF.INC"
.list

.def tmp=r16
.def tmp0=r17
.def cnt=r19

.DSEG
clok:	.byte 1
pdiv:	.byte 1

.cseg
.org $0a

RESET:
	ldi tmp,low(RAMEND)
	out spl,tmp
.macro OUTI
	LDI   R16,@1
	OUT   @0,R16
	.endm
.macro OUTF
	LDs   R16,@1
	OUT   @0,R16
	.endm
.macro INF
	ldi   R16,@1
	sts   @0,R16
	.endm

;	OUTI   tccr0a,(0<<com0a1)|(1<<COM0A0)|(0<<com0b1)|(0<<COM0b0)|(1<<wgm01)|(0<<wgm00);ÍÀÑÒÐÎÉÊÀ ØÈÌ
	ldi tmp,low(RAMEND)
	out spl,tmp

	ldi tmp,$01	;ïðåääèëèòåëü 64
	out tccr0b,tmp

	ldi tmp,0b00001001
	out ddrb,tmp
	ldi tmp,0b00000110
	out portb,tmp
	sei

main:
/* ïðîöåäóðà çàäàíèÿ çíà÷åíèé ÷àñòîòû*/
inf clok,$10	;äëÿ ïðîâåðêè
inf pdiv,$01	;äëÿ ïðîâåðêè

jjj:





;âûâîä òðåõ èìïóëüñîâ
outf tccr0b,pdiv
outf ocr0a,clok
cpi tmp,$ff
brne next
sbi portb,3
rjmp next2
next:
cbi portb,3
next2:

	OUTI   tccr0a,(0<<com0a1)|(1<<COM0A0)|(0<<com0b1)|(0<<COM0b0)|(1<<wgm01)|(0<<wgm00);ÍÀÑÒÐÎÉÊÀ ØÈÌ
	outi tcnt0,$ff

key_2_off:
	sbic pinb,1
	rjmp key_1_off
key_1_on:
	sbis pinb,1
	rjmp key_1_on
	lds tmp,clok
	inc tmp
	sts clok,tmp
	rjmp jjj
key_1_off:
	sbic pinb,2
	rjmp key_2_off
key_2_on:
	sbis pinb,2
	rjmp key_2_on
	lds tmp,pdiv
	inc tmp
	sts pdiv,tmp
	rjmp jjj






ldi tmp,2
metka2:
	sbis pinb,0
	rjmp metka2
metka3:
	sbic pinb,0
	rjmp metka3

	subi tmp,1
	brcc metka2

; ÒÓÒ ÍÀÄÎ ÎÒÊËÞ×ÈÒÜ ÃÅÍÅÐÀÖÈÞ È ÑÁÐÎÑÈÒÜ PINB PORTB
;	OUTI   tccr0a,0


	lds tmp,clok
	inc tmp
	sts clok,tmp
	rjmp jjj

;		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
	reti	;rjmp ADC_inc ; ADC Conversion Handler

.exit
