Ich ich den Code jetzt soweit das ich den Timer in der geschwindigkeit einstellen kann. Dann hab ich mir mit dem Programm rnVAR berechen lassen, welchen Prescaler (Teiler) und welchen Timervorgabewert ich nehmen soll. Das Programm hat mir als Teiler 256 und als Timervorgabewert 34286 Vorgeschalgen. Mit diesen Infos hab ich dann den Code gefüttert, aber mein timer reagiert nicht bei einer Sekunde sondern bei ca 7-8 Sekunden. Kann mir jemand sagen wo mein Fehler liegt?

Verwendete Hardware:
  • ATMega16
    8MHz Quarz


Code:
.include"m16def.inc"


.def	isreg	= r15
.def	wr0	= r16
.def	iwr0	= r17
.def	prescaler = r18
.def	second = r19


.list
	rjmp	init
	.org	OC1Aaddr
	rjmp	Timerinterrupt


Timerinterrupt:

	inc	second
	reti

init:
	ldi	wr0, 0xFF
	out	ddrb, wr0

	ldi	wr0, high( ramend )
	out	sph, wr0
	ldi	wr0, low( ramend )
	out	spl, wr0

	ldi	wr0, 1<<WGM12^1<<CS12 ; Festlegen des Teilers 265
	out	TCCR1B, wr0

	ldi	wr0, high( 34286 ) ;Festlegen des Timervorgabewertes
	out	ocr1ah, wr0
	ldi	wr0, low( 34286 ) ;Festlegen des Timervorgabewertes
	out	ocr1al, wr0
	out	tcnt1l, wr0

	ldi	wr0, 1<<OCIE1A
	out	TIMSK, wr0
	sei

main:
	ldi	second, 0

_mai1:
	cpi	second, 60
	breq	main
	out	PORTB, second
	rjmp	_mai1
Kann mir jemand sagen wo mein Rechen- oder Codefehler liegt?