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
Bei Mode 5 ist TOP=OCR0A; also kannst Du den OCR0A compare match interrupt nehmen.
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 :)
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?
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.
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
ok alles klar, dann stimmts soweit :) danke nochmal, jetzt weiß ich wie ich weitermachen kann.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.