Frage zum CTC beim Attiny13

Gast #2795958
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!
Gast #2796049
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
Gast #2796103
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?
Gast #2796120
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

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