mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt bei Phase Correct PWM


Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
servus,

ich programmiere eine 8-bit phase correct PWM Mode 5 auf einem 
Atmega168.

dazu mein problem:

ich möchte gernen einen interrupt genau beim höchsten wert des zählers 
auslösen. also kurz bevor er wieder runter auf 0 zählt. also bei TOP und 
nicht bei OCRnx.

laut datenblatt S.97 gibts da diesen "OCnx Interrupt Flag Set", was 
genau das wäre was ich brauche. nur leider weiß ich nicht wie ich den 
auslösen kann.

mit TOVn gehts leider nicht, da ich im mode 5 bin und dieser den 
interrupt erst bei BOTTOM auslöst. ich bräuchte halt nen interrupt bei 
TOP.

hoffe jemand kann mir helfen

gruß Tom

Autor: Drachenbändiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei Mode 5 ist TOP=OCR0A; also kannst Du den OCR0A compare match 
interrupt nehmen.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für deine antwort :)

aber dieser campare match interrupt kann doch auch ausgelöst werden wenn 
wenn mein OCR0A nicht den maximalen wert hat, oder? ich beziehe mich 
hierbei direkt auf die abbildung auf S. 97.

dort wird in periode 2 und 3 der interrupt ausgelöst obwohl der der wert 
des timers nicht bei TOP, also bei 255, ist. oder versteh ich da was 
falsch?

der timer zählt doch immer von 0 bis 255 und dann wieder zurück. wenn 
mein OCR0A z.b. den wert 127 hat, dann wird der interrupt doch schon bei 
der hälfte der ansteigenden gerade ausgelöst. ich bräuchte aber einen 
der immer bei dem timerwert 255 ausgelöst wird.

oh weh ich merke gerade das ich meinen beitrag oben ziemlich komisch 
formuliert habe :)

Autor: Drachenbändiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus dem Datenblatt: "TOP is defined as 0xFF when WGM2:0 = 1, and OCR0A 
when WGM2:0 = 5." Du sagtest doch, Du benutzt Mode 5?

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja genau, mode 5. nur diese abbildung verwirrt mich etwas.

aber du hast schon recht, wenn TOP = OCR0A entspricht bedeutet das ja 
das meine "dreiecke" entsprechend kleiner werden als in der abbildung 
auf S.97.

verstehe ich das so richtig?

ich glaub ich seh schon den wald vor lauter bäumen nicht mehr.

Autor: Drachenbändiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In meinem Datenblatt (8161D–AVR–10/09) gibt die S.97 diesbezüglich nicht 
viel her.
Du beschreibst den Unterschied zwischen Mode 1 und Mode 5 richtig!
Phase-correct PWM: BOTTOM=0; TOP=0xff in Mode 1, TOP=OCR0A in Mode 5

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok alles klar, dann stimmts soweit :)

danke nochmal, jetzt weiß ich wie ich weitermachen kann.

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.