www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMEGA168 und CTC-Timer


Autor: Waldemar F. (drhack)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Community,

ich baue gerade einen kleinen Timer für meinen Belichter und will einen 
Piezo am ATMEGA168 anschließen. Dazu will ich den Timer2 im CTC-Mode 
verwenden.

Init:
TCCR2A = (1<<COM1A0); // trigger pin
TCCR2B = (1<<WGM12) | (1<<CS12); // CTC-Mode / prescaler: 256

OCR2A = 128; // compare

Am Pin OC2A habe ich nun konstante 488,2Hz. µC läuft mit 16MHz und eine 
Änderung des CompareMatch Wertes OCR2A, bewirkt überhaupt keine Änderung 
der Ausgangsfrequenz. Woran liegt es? Ist überhaupt CTC mit Timer2 
möglich?

Gruß

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst Dich für einen Timer entscheiden. Die Register TCCR2x und OCR2A 
gehören zu Timer 2, die Bezeichner für die Bits, die Du setzt (COM1A0, 
WGM12 und CS12), gehören aber zu Timer 1...

Autor: Waldemar F. (drhack)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, welche Bits muss ich denn setzen, damit Timer2 im CTC läuft und OC2A 
toggelt?

Gruß

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Waldemar F. wrote:
> Oh, welche Bits muss ich denn setzen, damit Timer2 im CTC läuft und OC2A
> toggelt?
----> Datenblatt...

Autor: Waldemar F. (drhack)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, habe mal im Datenblatt gestöbert und angepasst.
TCCR2A = (1<<COM2A0); // toggle pin
TCCR2B = (1<<WGM22) | (1<<CS22) | (1<<CS21); // CTC / 256
OCR2A = 128;

Macht keinen Unterschied! Die Frequenz ist nun bei 122Hz "festgefroren" 
und lässt sich nicht über OCR2A verändern. Was kann sonst nicht stimmen?

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
WGM22 muß WGM21 heißen, und zwar in TCCR2A. Brille kaputt?

Autor: Waldemar F. (drhack)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar, danke!
Anscheinend benötige ich wirklich eine Brille. Ich drucke mir erstmal 
das Datenblatt auf A1 aus...

Danke nochmal und Gruß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.