Forum: Mikrocontroller und Digitale Elektronik Frage zum CTC beim Attiny13


von robert-p (Gast)


Lesenswert?

Hallo,

ich habe ein Programm von einem Atmega8515 auf einen Attiny13 portiert, 
beide haben ja fast überhaupt keine nennenswerten Unterschiede.

Allerdings habe ich mit den Timern ein Problemchen.

Auf dem Mega hatte ich zwei Timer benutzt (Led toggeln und ca 1h warten 
- jeweils im CTC-Modus). Da der Tiny nur einen Timer hat, kann ich mit 
dem gewöhnlichen CTC-Modus nur einen Interrupt beim Compare-Match 
auslösen.

Nun meine Frage: Gibt es eine Möglichkeit, dass der Timer beim 
Überschreiten einer Schwelle einen Interrupt auslöst und beim Match mit 
der anderen Schwelle ein Clear-On-Compare-Match auslöst (mit Interrupt)?

Falls nicht muss halt ein workaround her.

Danke euch!

von spess53 (Gast)


Lesenswert?

Hi

>Nun meine Frage: Gibt es eine Möglichkeit, dass der Timer beim
>Überschreiten einer Schwelle einen Interrupt auslöst und beim Match mit
>der anderen Schwelle ein Clear-On-Compare-Match auslöst (mit Interrupt)?

Ja. Du hast doch zwei Compareregister.

MfG Spess

von robert-p (Gast)


Lesenswert?

Ja, eben. Aber CTC funtioniert dann nicht, da der Timer immer beim 
überschreiten von OCR0A auf null gesetz wird.

Sollte das so einfach sein, dass man einfach OCR0B < OCR0A macht und 
ggf. die ISR vetauscht?

von spess53 (Gast)


Lesenswert?

Hi

>Sollte das so einfach sein, dass man einfach OCR0B < OCR0A macht und
>ggf. die ISR vetauscht?

ist es. OCRA ist bei CTC der Top-Wert des Timers. Das ist nicht 
verhandelbar. Aber es hindert dich nichts daran, mit OCRB vorher einen 
Interrupt auszulösen.

MfG Spess

von robert-p (Gast)


Lesenswert?

OK, Dankeschön!

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.