Hallo zusammen, kann mir jemand auf verständliche Art und Weise die Funktionsweise bzw. die Einrichtung des Mode 7 der FastPWM erklären? Irgendwie komm ich mit dem Datenblatt nicht weiter, da dort (meiner Meinung nach) nur der mode 3 der FastPWM dargestellt ist. Im Mode 7 steht einem ja ebenfalls (wie im Mode 3) ein Register OCR0A zur Verfügung um den Compare Match zu definieren. Der Unterschied ist aber im Mode 7, dass der Wert im OCR0A den Top-Wert des Zählers definiert. Er startet dann also wieder von vorn. Wie soll man denn aber dann eine PWM konfigurieren?? Wo soll denn dann noch der nötige CompareMatch für die Pulsweite definiert werden? Irgendwie ist mir genau das ein Rätsel. So wie ich diesen Mode gerade verstehe ist das für mich nichts anderes als ein CTC-Timer. Für eine PWM bräuchte man doch aber eigentlich zwei Werte (einen für die "Periode" und einen für die Pulsweite), oder hab ich irgend etwas übersehen? Beim Tiny15 hat man deswegen ja auch ein OCR1A und ein OCR1B. Freu mich auf Eure Antworten.
Laut meinem Datenblatt hat der Tiny13 auch zwei OCR register, ein OCR0A und ein OCR0B. Problem damit gelöst? ciao Remo
Ich glaube du hast die Aufgabe von OCR0A und OCR0B noch nicht so richtig verstanden, oder? Das eine ist der Top-Wert, bis wohin der Counter zählen soll (Stichwort CompareMatch) das andere ist das Tastverhältnis der PWM (Verhältnis Pulslänge zu Pause). Beides gehört zu ein und derselben PWM. Die zweite PWM hätte demzufolge dann OCR1A und OCR1B, eben genauso unterschieden, wie auch Timer/Counter 0 und 1. Verstanden? Wenn nicht, Datenblatt noch mal lesen. Greetings, Branadic
Versuchen wir es nochmal so: Was beim Tiny15 OCR0B machte, tut beim 13er das OCR0A, und umgekehrt. Entsprechend liegt auf dem Pin, der beim Tiny15 OCA war, beim Tiny13 OCB. Aber da der Tiny13 gegenüber dem 15 auch PWM-Modi mit festem TOP (0xFF) kann (z.B. Mode 3), hat er noch einen zweiten OC-Pin für den A-Compare, den der 15 nicht hatte... Gruß Johannes
Branadic wrote: > Ich glaube du hast die Aufgabe von OCR0A und OCR0B noch nicht so richtig > verstanden, oder? > Das eine ist der Top-Wert, bis wohin der Counter zählen soll (Stichwort > CompareMatch) das andere ist das Tastverhältnis der PWM (Verhältnis > Pulslänge zu Pause). Beides gehört zu ein und derselben PWM. Die zweite > PWM hätte demzufolge dann OCR1A und OCR1B, eben genauso unterschieden, > wie auch Timer/Counter 0 und 1. Verstanden? Wenn nicht, Datenblatt noch > mal lesen. > > Greetings, Branadic @Branadic Danke vielmals für deine Ausführungen. Mir sind die Funktionen von OCR1A/B sehr wohl bekannt - jedenfalls beim Tiny15. Schließlich kann ich beim Tiny15 meine PWM so konfigurieren wie ich es möchte. Leider verhält sich der Tiny13 mit seinen ZWEI OCR-Register für seine ZWEI PWM-Pins etwas anders und für mich so anders, dass ich deswegen hier nachfrage. Aber hast du eigentlich mal das Datenblatt des Tiny DREIZEHN gelesen???? Ich kann dort leider keine Register OCR1A/B finden, die ja angeblich für den zweiten PWM-Ausgang zuständig sein sollen!!!!! Wenn diese Register vorhanden wären, hätte ich nämlich mein Problem nicht. Des weiteren hättest Du Dir den Hinweis das Datenblatt noch einmal zu lesen ebenfalls ersparen können. Wie man im Starterthread erkennen kann, hab ich dieses gelesen und trotzdem - dafür entschuldige ich mich vielmals - kamen Unklarheiten auf, die ich hoffte mit Euch zu klären. Ich bin mir nicht ganz sicher, ob man wirklich auf Fragen antworten sollte, wenn man sich seiner Erklärung nicht vollkommen sicher ist, weil man halt schon das gleiche Problem mit dem gleichen µC defintiv lösen konnte bzw. überhaupt weiß wie sich welcher µC verhält. Zumindest sollte man doch den Thread so aufmerksam lesen und den Ersteller nicht gleich vorverurteilen, weil er sein Problem nicht allein lösen konnte. Ich war immer der Meinung, dass Foren genau dafür da sind Hilfe zu bekommen. Aber anscheinend haben sich die Zeiten geändert. @Johannes Danke für Deine Erklärung. Das war die bisher sinnvollste Antwort, die gegeben wurde - und das ohne den Hinweis das Datenblatt noch einmal zu lesen :-). Denn wie schon einmal wiedergegeben: Irgendwie kam ich damit nicht weiter. Den Unterschied der zwei Modi hab ich soweit auch verstanden. Aber könntest Du mir vielleicht noch einmal etwas genauer erklären, wie ich eine bestimmte Periode und eine Pulsweite mit dem Mode 7 einstelle? Ich möchte den Pin0=OC0A verwenden, da der Pin1=OC0B (der ja ebenfalls ein PWM-Ausgang ist) als extInt-Pin fungieren soll. Ich möchte also den Topwert nicht auf 0xFF haben, sondern auf einen von mir definierten Wert. Dafür nehme ich den Mode 7 und setze meinen gewünschten Topwert in das OCR0A register. Damit erreiche ich das jetzt die Rampe bei meinem definierten Wert überläuft und wieder von vorn beginnt. Somit stellt dieser Wert auch meine Periode dar. Mir ist aber immer noch nicht bewußt, wie ich jetzt die Pulsweite definieren kann?! Könntest Du mir da irgendwie weiterhelfen (- oder jemand, der sich ebenfalls die Mühe machen würde)? Oder ist es beim Tiny13 so, dass wenn ich den Mode3 mit festen Topwert benutze die Pulsweite mit OCR0A einstelle und wenn ich den Mode7 benutze mit OCR0A den Topwert und mit OCR0B die Pulsweite einstelle, obwohl ich den Pin OCR0A verwende???? Das wäre natürlich eine Möglichkeit.
Keine Chance... sobald OCRA den TOP macht, kannst Du mit dem Tiny13 auf OCA keine PWM mehr machen. Aber kannst Du statt INT nicht auch den PCINT benutzten, der ja auch auf anderen Pins funktioniert? Wenn nicht, schlage ich vor, mal an den Tiny25/45/85 zu denken. Der hat noch ein drittes OCRC für den TOP, und dessen OC-Pins schneiden sich nicht mit dem INT. Gruß Johannes
Johannes A. wrote: > Keine Chance... sobald OCRA den TOP macht, kannst Du mit dem Tiny13 auf > OCA keine PWM mehr machen. Aber kannst Du statt INT nicht auch den PCINT > benutzten, der ja auch auf anderen Pins funktioniert? > > Wenn nicht, schlage ich vor, mal an den Tiny25/45/85 zu denken. Der hat > noch ein drittes OCRC für den TOP, und dessen OC-Pins schneiden sich > nicht mit dem INT. > > Gruß Johannes Oh Mist verdammt. Dann ist der Tiny15 in dieser Hinsicht ja tatsächlich besser. Den Tiny13 habe ich übrigens auch gewählt, weil man bei dem die PCINT-Pins maskieren kann. Das konnte wiederum der Tiny15 nicht, obwohl der auch den PinChange-Interrupt hat - halt bloß für alle Pins, dummerweise auch wenn die als Ausgänge definiert und gebraucht werden. Schade, dass der Tiny13 sich jetzt so mit der PWM anstellt - dann kann ich den also doch nicht zu meinem Standardlieblingscontroller machen. Na gut, aber nochmal zu deinem Vorschlag mit den PCInt statt INT. Dann hätte ich natürlich die Pins OCA und OCB frei. Aber habe ich mit dem nicht genau das gleiche Problem, wenn ich meinen eigenen Überlauf und Pulsweite definieren will? Verhält sich der in seiner Konfiguration prinzipiell anders als der OCA? Ich glaub nicht, bin mir da aber jetzt nicht sicher. Oder verstehe ich Deinen Gedankengang gerade nicht?
Servus, wie schaut es denn aus, wenn du einfach auf andere Typen aus der Tiny-Familie umsteigst? Ich denke da an Tiny 22, 25, 45 oder 85 auch alle im DIP8 oder SO8 Package. Alle samt haben sie 4 PWM-Ausgänge, da wird sicherlich auch einer mit den Anforderungen nach einem maskierbaren Interrupt dabei sein. Gruß, Pierre
Hallo, ja, das werde ich dann mal in Betracht ziehen. Mir ging es vorerst eigentlich nur um die Frage, ob es überhaupt möglich ist den Tiny13 "PWM-technisch" so zu konfigurieren, wie mit dem Tiny15 - also sowohl Periode als auch Pulsweite oder ob ich einfahc nur zu doof war die entsprechenden Einstellungen zu finden. Aber ich möchte mich trotzdem nochmal bei allen bedanken, die geantwortet haben. Ich schau mich dann mal nach einen anderen Tiny um.
Ich glaub, Du hast mich ein bisschen falsch verstanden :-) Also wenn Du beim tiny13 OCRA für den TOP benutzt, kannst Du doch immer noch mit OCRB den PWM-Output machen... Das ist doch nichts anderes, als wenn Du beim tiny15 OCRB für den TOP benutzt und mit OCA den PWM-Output machst, oder? Aber eigentlich ist der Nachfahre des tiny15, wie der Name schon andeutet, eh der tiny25/45/85. Da hast Du dann auch wieder die PLL und den Verstärker für den ADC (hat der 13 beide nicht), dazu diverse neue Features (der zweite Timer mit Totzeit-Generator in der PWM und die GPIORs sind meine Favoriten), und OCA und INT liegen wieder auf denselben Pins. Und so viel teurer als der tiny13 ist der 25 auch nicht (bei reichelt 1,50 gegenüber 1,10 Euro). Gruß Johannes
Hallo Johannes, nö, nö. Ich glaub, ich hab dich schon verstanden. Hab wohl eher an Dir vorbei geredet. Wie auch immer. Ich danke Dir jedenfalls für Deine Erklärungen. Ich hab mich mittlerweile auch schon ein bißchen mit der Tiny25/45/85 - Reihe befasst. Also bis jetzt ist die äußerst vielversprechend. Grüße Dirk
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.