CTC-Flag im Tiny13A

Gast #3586891
Lesenswert?
• ▲
▼
Ich kämüfe mich grade übel durch alle Timerfunktionen in meinem Tiny13A. 
Ich möchte alle 30 CPU-Zyklen einen Interruppt auslösen. Wie ich in 
anderen AVRs gesehen habe gibt es ein CTC-Flag, dass den Timer (TCNT0) 
bei Compare-Match mit dem Vergleichsregister (OCR0A) automatisch auf 
Null (oder was auch immer) setzen soll.

Im Datenblatt des Tiny13A kann ich aber weder das zuständige Register 
noch das CTC-Flag (Clear-Timer-Compare) finden.

Was bedeutet das?

Das habe ich bisher eingegeben:
 ldi     tmp, 1 << CS00     ; CS00 setzen: für Timerzähler kein 
Vorteiler
 out     TCCR0B, tmp
 ldi     tmp, 0x1D          ; wenn timerzähler 30-1 erreich interruppt 
auslösen
 out     OCR0A, tmp
 ldi     tmp, 1 << OCIE0A     ; OCIE0A: Interrupt bei Timer Vergleich 0A
 out     TIMSK0, tmp
; ldi     tmp, 1 << OCF0A   ; Ist auf 1 wenn Compare-Match 0A zutrifft
; out     TIFR0, tmp
 sei              ; Interrupt erlauben
Gast #3586977
Lesenswert?
• ▲
▼
Folgendes habe ich noch rausgefunden:

Es sollte das Symbol CTC0 im Register TCCR0A sein. Der Compiler sagt 
aber CTC0 kennt er nicht (CTC und CTC1 auch nicht) bzw. ist nicht in der 
include.inc definiert.

Der erste Interrupt wird nach den Eingaben (siehe oben) in Zyklus 55, 
der Zweite bei Zyklus 311, der Dritte bei Zyklus 567, usw. ausgelösst...

Also der erste Interrupt wird vorzeitig ausglösst. Alle Interruppts 
dannach folgen alle 256 Zyklen. Das Timerregister (TCNT0) wird also 
nicht automatisch zurückgesetzt.

Mist...
Gast #3586995
Lesenswert?
• ▲
▼
Hi

>Es sollte das Symbol CTC0 im Register TCCR0A sein. Der Compiler sagt
>aber CTC0 kennt er nicht (CTC und CTC1 auch nicht) bzw. ist nicht in der
>include.inc definiert.

Ein CTC-Bit gab es bei alten AVRs. Bei den Aktuellen AVRs wird alles 
über die WGM-Bits geregelt.

>Also der erste Interrupt wird vorzeitig ausglösst. Alle Interruppts
>dannach folgen alle 256 Zyklen. Das Timerregister (TCNT0) wird also
>nicht automatisch zurückgesetzt.

>Mist...

Bei welchem Programm?

MfG spess
Gast #3587006
Lesenswert?
• ▲
▼
Thomas Eckmann schrieb:
> Guck in die Tabelle "Waveform Generation Mode Bit Description" in der
> Beschreibung des TCCR0A-Registers. Der Timer wird mit den WGM-Bits
> eingestellt. Ein CTC-Bit hat der nicht.

Danke für die schnelle Hilfe.

Lable WGM01 im Register TCCR0A hats gebracht. CTC wird ausgelösst.

Danke dafür...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.