Ich hab es jetzt mal so gemacht wie teslanikola vorgeschlagen hat und hab dem Timer die Werte nocheinmal übergeben. Aber es hat sich leider nicht geändert, die Sekunde ist immer noch zu lang.
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:
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
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
@Michael
Mit dem was du geschrieben hast, kann ich leider nichts anfangen. Kannst du mir erklären was du meinst?
Lesezeichen