Timer und Vergleichswert

Gast #740850
Lesenswert?
• ▲
▼
Hallo
Ich habe einen Timer 0 (mega16) und möchte, das er nach 5 Flanken an T0 
Pin OC0 aktiviert. Macht er eigentlich auch - aber erst nach 6 Flanken. 
Warum nur?
1
int main()
2
{
3
  DDRB |= (1 << DDB3);  // PORT PB3   
4
  PORTB &= ~(1 << PB3);  // T0 aus
5

6
  OCR0 = 5;  // Vergleichswert einstellen
7
  TCCR0 |= (1 << COM00) | (1 << COM01);  // OC0 ein bei Vergleichwert
8
  TCCR0 |= (1 << CS00) | (1 << CS01) | (1 << CS02);  // External Clock an T0, steigende Flanke
9

10
  while (1);
11
  return 0;
12
}
Gast #740892
Lesenswert?
• ▲
▼
>Das sind halt 6 ...

Ja, aber der Counter steht ja schon auf 0:
0 - Takt - 1 - Takt - 2 - Takt - 3 - Takt - 4 - Takt - 5
Das sind 5 Takte bis 5 im Counter (=Vergleichswert) steht


>Weil das Compare-Flag erst beim jeweils folgenden Timertakt gesetzt wird
>(s. Datenblatt). Wenn es schon bei Übereinstimmung der Werte gesetzt
>würde, gäbe es bei OCR = 0 gewisse Probleme...

Das habe ich mir auch irgendwie gedacht, aber im Datenblatt nirgends 
gefunden. Kannst Du mir das aufzeigen? Ich lese nur "The Output Compare 
Registers contain a 8-bit value that is continuously compared with the 
counter value." Das klingt für mich nicht nach nächster Flanke...

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.