Generovanie presneho pulzu

tady jen tak od oka (nezkousel jsem to)

tohle musi byt na te konkretni adrese (lepe receno staci tam dat rjmp nekam, kam umistis zbyly obsah)

	.ORG 0x12
	cli
	cbi PORTD,7
	reti

nastaveni casovace, je nutne zavolat predtim, nez zacnes pouzivat dotycnou funkci. pocet tiku pro 70ms pri f=16MHz je 446h

nastaveni: clr R16
out TCCR1A,R16

	ldi R16,(1<<WGM12)|(1<<CS12)|(1<<CS10)
	out TCCR1B,R16

	in R16,TIMSK
	ori R16,(1<<OCIE1A)
	out TIMSK,R16

	ldi R16,$04
	out OCR1AH,R16
	ldi R16,$46
	out OCR1AL,R16
	ret

a timhle uz jenom zavolas samotny pulz a muzes si dal hrat v programu. o ukonceni pulzu se postara preruseni
pulz: sbi PORTD,7
clr R16
out TCNT1H,R16
out TCNT1L,R16
sei
ret

samozrejme by to slo udelat tak, ze to preruseni bude zapinat a vypinat primo ten pin, ale priznam se ze uz jsem liny :slight_smile:

jo a pokud bys rad ten pocet tiku pro jinou frekvenci, tak v tomto pripade 1024/16M (nastavena delicka v TCCR1B). vyjde 0.000064s coz je cas jednoho tiku. no a tim vydelis tech 70ms a voila … 446 tiku timeru da lehounce pres.