www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega8 Timer2 PWM 0-100%


Autor: _CH_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe den Timer2 des Mega8 im fast-PWM-mode laufen (kein Prescaler, 
clear OC2 on compare match).
Jetzt tritt folgender Effekt auf: wenn das OCR2 Register 0 ist, dann 
treten am OC2-Pin immer noch kurze Nadeln auf, d.h. ich kann das Signal 
nie ganz abschalten.

Zitat aus dem Datenblatt:
"If the OCR2 is set equal to BOTTOM, the output will be a narrow spike 
for each MAX+1 timer clock cycle."

Ist logisch, da der Pin beim Timerüberlauf gesetzt wird und der eine 
Takt zum Vergleich mit dem OCR2-Register benötigt wird.

Jetzt stelle ich mir die Frage wie man den Spike wegbekommt.
Eine Idee wäre, den Wert des OCR2-Registers auf 0 zu prüfen und dann den 
Ausgang abzuschalten.

Geht's einfacher/eleganter?

Gruß,
Christian

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

Bewertung
0 lesenswert
nicht lesenswert
>Eine Idee wäre, den Wert des OCR2-Registers auf 0 zu prüfen und dann den
>Ausgang abzuschalten.

Geht nicht, dafür hat Der Controller, wenn Timer2 ohne Vorteiler läuft, 
gar keine Zeit.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Geht nicht, dafür hat Der Controller, wenn Timer2 ohne Vorteiler läuft,
> gar keine Zeit.

Was haben die zwei Dinge denn miteinander zu tun? Man bedenke, daß OCR2 
sich nicht einfach auf magische Weise ändert und man es deshalb auch 
nicht bei jedem Timerdurchlauf prüfen muß. Man prüft es einfach, bevor 
man den neuen Wert ins Register schreibt.

Autor: Branko Golubovic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich geht, aber nicht direkt OCR2-Register überprüfen, sonder Wert 
vor den Zuweisung:
 If(PWM_Wert==0) DDRB&=~(1<<PB3);
 // OC2 PIN als input konfigurieren und PWM abschalten 
 //Pull Down Widerstand nicht vergessen.
else
{
 DDRB|=(1<<PB3); // PWM wieder einschalten
 OC2R=PWM_Wert;  // PWM aktualisieren
} 

Branko

Autor: _CH_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten.

Wenn ich das richtig interpretiere, dann würdet ihr das genauso machen 
(Pin abschalten).
Hätte gedacht, es gäbe evtl. noch eine andere Möglichkeit/Trick wie man 
das noch lösen könnte.

Gruß,
Christian

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

Bewertung
0 lesenswert
nicht lesenswert
...ähh okay, Frage falsch interpretiert :-/.

Autor: _CH_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Travel Rec.
Kein Problem. Ich gebe zu, man hätte es deutlicher formulieren können.

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.