Forum: Mikrocontroller und Digitale Elektronik ASM: TimerC1 OVL richtig "laden"?


von AVRli (Gast)


Lesenswert?

Hi!

danke fürs lesen... ;-)

Ich habe folgendes Problem...
Ich möchte gerne den Timer1 in meinem Programm verwenden aber irgendwas
klemmt da... ;-(

Meine 16bit Konstante ist die

.equ Time1 = $0150

Zur Zeit lade ich den Timer1 mit...

ldi wrI,-High(Time1)
out TCNT1H,wrI
ldi wrI,-Low(Time1)
out TCNT1L,wrI

Nur was ich nicht verstehe ist das wenn ich mit der Konstante runter
gehe also zb "$0100" wird der Timer nicht schneller... sondern
langsamer...

Was mache ich da falsch?
Ich bin für jeden Tip dankbar...

MfG, schönen Sonntag... AVRli

von Frank Linde (Gast)


Lesenswert?

Wie hast Du denn den Timer initialisiert?

Gruß, Frank

von AVRli (Gast)


Lesenswert?

Hi!

Problem ist gelöst... ;-)

ldi wrI,High(-Time1)
out TCNT1H,wrI
ldi wrI,Low(-Time1)
out TCNT1L,wrI

...muss es heißen... die Minus Zeichen waren an der falschen Stelle...
;-I

Nun stimmt es wieder... kleiner Time1 Wert schnellerer Interrupt
größerer Timer1 dann langsamerer Interrupt...

@Frank

Auch wenn es sich erledigt hat... hier die Initialisierung...

sbr wrH,1<<TOIE1  ; Interupt für Timer1 einschalten
out TIMSK,wrH    ; ... und freigegeben
ldi wrH,$01    ; Vorteiler auf CLK für T/C1
out TCCR1B,wrH    ; ... ausgeben und damit T/C1 starten


MfG AVRli

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.