Mega8/Timer2

Gast #95299
Irgendwie steh ich diesmal komplett auf dem Schlauch...
Also: Mega8, Timer2 asynchron mit 32.768kHz, läuft, Frequenz stimmt
auch.
Vorteiler 1024, OCR=1, CTC-Mode (clear on compare).
In der output-compare-ISR wird PortB.0 getoggelt, weiter nichts, das
ist jetzt alles, was ich als Programm noch drinhabe.
Hatte eigentlich erwartet, dass alle 31.25ms B.0 getoggelt wird,
Frequenz also 16Hz, es sind aber 62.5ms=8Hz.

Init:
ASSR=0x08;
TCCR2=0x0f;
TCNT2=0;
OCR2=0x01;
Wo liegt mein Denkfehler?
Gast #95301
Wieso? Nach TCNT2=OCR wird der Zähler auf 0 gesetzt, nach weiteren 1024
Takten sollte TCNT2 auf 1 wechseln und direkt wieder den OCR-Int
auslösen. Zumindest denke ich mir das so. Aber ich wäre dir dankbar für
eine weitere Erläuterung.
Gast #95303
Hm, in der Tat, mit OCR=0 funktionierts wie gewollt. Grübel, grübel -
muss ich das jetzt verstehen? Irgendwie unlogisch...
Besten Dank jedenfalls.
Gast #95304
@ crazy horse

du hast geschrieben, daß du den port toggeln läßt. eine frequenz setzt
sich zusammen (bei dir ein rechtecksignal) aus dem positiven und dem
negativem signalanteil. der timerinterrupt stimmt. du betrachtest mit
der frequenz 2 interrupts.

mfg
michael
Gast #95305
nö, nö, da liegt das Problem nicht.
Mein Ansatz: Takt 32,768kHz, Vorteiler 1024, also zählt Timer2 mit
32Hz, also alle 31,25ms einen Takt. Und nun dachte ich, dass exakt nach
31,25ms TCNT2 von 0 auf 1 wechselt, damit den OCR-Int auslöst und
gleichzeitig TCNT2 von 1 auf 0 zurückgesetzt wird. In der ISR wird ein
Portpin getoggelt, also je 31,25ms low, dann 31,25ms high,
Periodendauer 62,5ms=16Hz. Es sind aber nur 8Hz.
Wie gesagt, mit OCR=0 klappt das.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.