Servus zusammen, Nach Atmel Datenblatt des ATmega8 auf Seite 111 gibt es eine Formel für das correct- Phase PWM, bei der im Nenner 510 steht. ÜBer den bruch steht Fck/io (also input frequenz). 1. Meine Steuerung hat ein Poti, dieser Analoge Wert wird im AD- Wandler von 10Bits auf 8 Bits digitalisiert(und konvertiert), und anschließend wird dieser Wert als Timer2 "phase- correct pwm" zählwert benutzt. Was wiederrum als PWM signal für meine rote LED dient (funktioniert übrigens, nur möchte ich den rechnerischen Wert haben, damit ich selber genauer die Frequenz justieren kann) Um selbst die Frequenz nachzurechnen, gibt es die Formel auf seite 111. Wie in "1." gehe ich vor. Nun ist die Frage, ob ich dann bei der inputFrequenz, also Fck/io über den Bruchstrich mein CPUtakt durch meinen ADC- Vorteiler einsetzen muss( wären hiermit 125khz), oder ob ich den reinen takt einsetze. Sollte ich die 125khz einsetzen, gibt es aber in der Division durch 510 keinen korrekten Wert. Korrekter Wert ist laut LED- Tutorial auf dieser Seite weniger wie 9khz, aber mehr wie 1khz. Was genau ist mein denkfehler? Wie müsste die Rechnung sonst lauten? Danke schonmal für einen Schlag auf den Hinterkopf ;) mfg, tommyProg
:
Bearbeitet durch User
Tho Wes schrieb: > Meine Steuerung hat ein Potti, Es heißt Poti. Mit einem t. Das ist die Abkürzung für "Potentiometer". Dein ständiges beharren auf "Potti" macht nur eines: es lässt dich dämlich dastehen. > Nun ist die Frage, ob ich dann bei der inputFrequenz, also Fck/io über > den Bruchstrich mein CPUtakt durch meinen ADC- Vorteiler einsetzen muss( > wären hiermit 125khz), oder ob ich den reinen takt einsetze. Was hat der ADC mit dem Timer zu tun? Richtig. Gar nichts. Nur weil du in DEINEM Programm die Steuerung der PWM vom ADC ausgehend betreibst, ist das ja keineswegs immer so. Wenn man den PWM Wert von der UART aus bekommen würde, würde man dann die Baudrate einsetzen? Wohl eher kaum. > Korrekter Wert ist laut LED- Tutorial auf dieser Seite weniger wie 9khz, aber mehr wie 1khz. 'Korrekt' ist das falsche Wort. Speziell bei einer LED. Wenn du willst, kannst du die auch mit einer 200Mhz PWM betreiben. Die Frage ist eher: welchen PWM Takt brauche ich mindestens, damit noch nichts flackert und ab welchem PWM Takt kann auch der empfindlichste Mensch das Flackern nicht mehr bei Kopfbewegungen sehen.
:
Bearbeitet durch User
> Was hat der ADC mit dem Timer zu tun? > Richtig. Gar nichts. > Ich denke aber schon, dass das damit was zu tun hat, denn mein Timer zählt bis zu einen gewissen Wert, und dieser maximale Wert ist der digital- konvertierte Wert meines Potentiometers. Habe ich z.b. mein Poti weit links gedreht, so habe ich einen kleineren ADC- Wert und somit zählt der Timer auch nur bis zu einen kleineren Maß. Außerdem, wenn ich nach der Formel gehen würde, und dann keinen Prescaler verwende, hätte ich 1000000/510, was ca. 1.9Khz entspricht. Die LED dürfte somit sehr hell leuchten. In diesem Fall leuchtet diese garnicht. Mit einen Timer Prescaler von 8, sowie einen ADC Prescaler von 8 funktioniert alles einwandfrei, oder siehst du das anders? Mfg, tommyProg
:
Bearbeitet durch User
Tho Wes schrieb: >> Was hat der ADC mit dem Timer zu tun? >> Richtig. Gar nichts. >> > > Ich denke aber schon, dass das damit was zu tun hat, denn > mein Timer zählt bis zu einen gewissen Wert, und dieser maximale Wert > ist der digital- konvertierte Wert meines Potentiometers. Das eine ist ein PWM Modul. Das andere ist der ADC vom ADC bekommst du einen Wert und diesen Wert steckst du ins PWM Modul. Aber das PWM MOdul arbeitet unabhängig vom ADC. Nur weil du den Steuerwert vom ADC abgreifst, hat die PWM bzw. der Timer noch lange nichts mit dem ADC zu tun. Also warum soll in die Berechnung der PWM-Frequenz in irgendeiner Form eingehen, woher der OCR Steuerwert kommt?
Tho Wes schrieb: > Habe ich z.b. mein Poti weit links gedreht, so habe ich einen kleineren > ADC- Wert und somit zählt der Timer auch nur bis zu einen kleineren Maß. Nope. Nochmal zurück. Du hast das Prinzip einer PWM nicht verstanden.
:
Bearbeitet durch User
Tho Wes schrieb: > ... was ca. 1.9Khz entspricht. Die LED dürfte somit sehr hell leuchten. Aber sowas von nicht verstanden. (Am Beispiel Fast-PWM) Der Timer zählt immer gleich schnell. Und er zählt immer bis zum selben Wert. Lediglich die Zählerstände, bei denen der Ausgangspin auf 1 gehalten wird, bzw. diejenigen, bei denen der Ausgangspin auf 0 gehalten wird, werden verändert. Hast du eine 3 Bit PWM, dann zählt der Timer immer
1 | 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, .... |
alles was der OCR Wert macht, ist das er eine Zuordnung vom Zählerstand zum Status des Ausgangspins herstellt. WObei Zuordnung eigentlich auch das falsche Wort ist. Bei Gleichheit wird der Ausgangspin umgeschaltet, genauso wie beim Erneuten Beginn der Zählers bei 0
1 | OCR sei 3 |
2 | |
3 | Der Timer zählt |
4 | |
5 | 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, .... |
6 | | | | | |
7 | | | | | |
8 | Pin auf 1 | Pin auf 1 | |
9 | | | |
10 | Gleichstand mit OCR Gleichstand mit OCR |
11 | Pin auf 0 Pin auf 0 |
12 | |
13 | Daher der Pinstatus |
14 | |
15 | 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 .... |
1 | OCR sei 5 |
2 | |
3 | Der Timer zählt |
4 | |
5 | 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, .... |
6 | | | | | |
7 | | | | | |
8 | Pin auf 1 | Pin auf 1 | |
9 | | | |
10 | Gleichstand mit OCR Gleichstand mit OCR |
11 | Pin auf 0 Pin auf 0 |
12 | |
13 | Daher der Pinstatus |
14 | |
15 | 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 .... |
Der einzige UNterschied zwischen den beiden OCR Werten besteht darin, dass der Ausgang in dem einen Fall 3 Takte lang auf 1 ist und 5 Takte lang auf 0, während er im anderen Fall 5 Takte auf 1 ist und 3 Takte auf 0. Im Mittel gesehen ist daher der Pin im 2.ten Fall prozentual öfter auf 1, was eine hellere LED ergibt. Wie schnell der Timer zählt, ist hingegen völlig uninteressant, solange es nur schnell genug ist, dass dein Auge das ständige ein und ausschalten nicht mehr wahrnehmen kann und statt dessen eine Helligkeit interpoliert. Mit dem ADC hat das ganze überhaupt nichts zu tun. Der ADC liefert lediglich die Vorgabe der 3 bzw der 5 im OCR Register. Die könnten aber genausogut auch von der UART kommen, oder per SPI übertragen worden sein, oder per Netzwerk eingetrudelt sein oder per Taster eingestellt worden oder .....
:
Bearbeitet durch User
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.