Forum: Mikrocontroller und Digitale Elektronik Timer1 Attiny2313


von Peter (Gast)


Lesenswert?

Hallo, ich verstehe die Welt nicht mehr..

Hier ist der Timer Init:

ldi workreg0, (1<<WGM12) | (1<<CS11)
out TCCR1B, workreg0

ldi workreg0, LOW(12799)

out OCR1AL, workreg0

ldi workreg0, HIGH(12799)

out OCR1AH, workreg0

ldi workreg0, 0x00
out TCNT1L, workreg0
out TCNT1H, workreg0

ldi workreg0, (1 << OCIE1A)
out TIMSK, workreg0

Die Quartfrequenz liegt bei 3,2768MHz

Hier der ISR Sprung
.org OC1Aaddr    rjmp SAMPLE

Ich will, dass er 32mal in die ISR springt, aber er macht es alle 640µS
in etwa nur verstehe ich nicht wieso

Need Help :D

von Olaf_K (Gast)


Lesenswert?

Bei 16-Bit Registern (d.h. OCR1AH:OCR1AL, TCNT1H:TCNT1L) muß die
Zugriffsreihenfolge beachtet werden.

Datenblatt S. 84: "To do a 16-bit write, the high byte must be written
before the low byte. For a 16-bit read, the low byte must be read before
the high byte."

MfG Olaf

von Peter (Gast)


Lesenswert?

Hmmh
wieso klappt das dann im AVR Studio??
GRRRRRR naj danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.