16-BitTimer1,3,4 (ATmega 2561) zu einem bestimmten Moment starten und stoppen

Gast #2338813
Lesenswert?

Hallo Leute,
ich habe da ein kleines Problem. Ich verwende den ATmega 2561. Nun 
möchte ich mit den drei 16-Bit Timern 1,3 und 4 drei verschiedene 
Zählvorgänge abarbeiten.
Timer 1 soll bei einem externen Interrupt immer bis zu einem bestimmten 
Wert z.B. 3000 Takte zählen dann auf null gehen und anhalten und dann so 
lange warten bis wieder ein externer Interrupt kommt.
Timer3 soll immer 1000 Takte zählen dann auf null gehen und anhalten bis 
ich ihn mittels einer anderen ISR wieder starte.
Timer4 soll immer 13000 Takte zählen dann wieder auf null gehen und 
anhalten bis ich ihn in einer anderen ISR wieder starte.
Könnt Ihr mir vielleicht sagen wie die Befehle für "starte jetzt" und 
"dann halt an"??
Kann ich das mit dem CTC-Modus irgendwie regeln??
MFG
Gast #2338821
Lesenswert?

Hi

>Kann ich das mit dem CTC-Modus irgendwie regeln??

Ja, geht aber auch ohne. OC-Register mit dem passenden Wert laden. Timer 
durch setzen CSx2:0 starten und im OC-Interrupt wieder stoppen.

MfG Spess
#2338912
Lesenswert?

Sky schrieb:
> Timer 1 soll bei einem externen Interrupt immer bis zu einem bestimmten
> Wert z.B. 3000 Takte zählen dann auf null gehen und anhalten und dann so
> lange warten bis wieder ein externer Interrupt kommt.
> Timer3 soll immer 1000 Takte zählen dann auf null gehen und anhalten bis
> ich ihn mittels einer anderen ISR wieder starte.
> Timer4 soll immer 13000 Takte zählen dann wieder auf null gehen und
> anhalten bis ich ihn in einer anderen ISR wieder starte.

Erzähl mal, was Du damit machen willst, dann geht das bestimmt deutlich 
einfacher.
Z.B. einen Timer durchlaufen lassen und in den 3 externen Interrupts die 
3 Compareregister laden.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren