Hallo guten Tag, Ich habe eine Frage bezüglich der Formel für eine korrekte PWM Einstellung beim AT162. Mit dem 16 Bit Timer3 - PWM Modus 14 -fast PWM ~>Ziel: Mein TOP herausfinden -> Formel lösen: ----------------------------------------------- Frequenz_des_PWMs = (Prozessorfrequenz) / (PRESCALER * (1+TOP)) ~>Frage:Woher kommt das +1 bei dem TOP? ~>Meine Berechnung für TOP *Wenn ich eine Frequenz von 500 Hz als PWM haben möchte, dann setze 500 Hz in meine Formel ein. *Mein Prozessor ist 8 MHz schnell. Setze ich auch ein. *Mein Prescaler soll 8 sein. Setze ich auch ein --> 500 Hz = (8MHz) / (8 * (1+TOP)) ++++++++++++++++++++++++++++++++++++++++++ Nun interessiert mich bis wieviel mein Timer 3 maximal zählen soll bis er sich wieder resettet . Das wäre in diesem Modus ICR3 = TOP TOP kann ich ja mit dieser Formel ausrechnen: 8 MHz/ (500Hz* 8) = 1 + TOP 2000 = 1+ TOP => TOP = 1999 ++++++++++++++++++++++++++++++++++++++++++ ~> Anderere Herangehensweise um TOP zu erhalten Woher kommt diese 1? Das verstehe ich nicht denn: *8 MHz Prozessorfrequenz erzeugt bei einem Prescaler von 8 eine Taktdauer von 1µs *Eine Periode meine PWM soll 1/500 Sekunden dauern : also 2ms. *In diese Periode von 2ms passen 2ms/1µs = 2000 Taktdauern => TOP gleich 2000!! ... warum dann noch eine Taktdauer abziehen? Mit freundlichen Grüßen AVRboy
Der Timer fängt bei 0 zu zählen an. 0 bis 1999 => 2000 Takte
ja ok , das ist nachzuvollziehen . Vielen Dank. (Warum hat mein Professor dann Initialwert : OCR3=2000 da stehen ..das verwirrt mich )
avrboy schrieb: > (Warum hat mein Professor dann Initialwert : OCR3=2000 da stehen ..das > verwirrt mich ) Wahrscheinlich weil er nicht daran gedacht hat und weil es bei einer PWM ziemlich wurscht ist, ob sie jetzt 500Hz oder 499.99998Hz hat. D.h. er hat es im praktischen Aufbau einfach nicht bemerkt, dass seine Frequenz nicht ganz stimmt.
Stefan schrieb: > Der Timer fängt bei 0 zu zählen an. > 0 bis 1999 => 2000 Takte Nope. Auch das wären nur 1999 Takte. Nimm kleinere Zahl, dann sieht man es besser
1 | Zählvorgang Anzahl benötigter Takte |
2 | von 0 auf 1 zählen 1 |
3 | von 1 auf 2 zählen 2 |
4 | von 2 auf 3 zählen 3 |
5 | von 3 auf 4 zählen 4 |
6 | von 4 auf 5 zählen 5 |
7 | von 5 auf 6 zählen 6 |
8 | von 6 auf 7 zählen 7 |
9 | von 7 auf 8 zählen 8 |
nach 8 Takten hat man also von 0 bis 8 hochgezählt Aber
1 | Überlauf: von 8 auf 0 9 |
das Rücksetzen des Timers zurück auf 0 ist ja auch ein Takt. D.h. einmal den Timer bis 8 rundumlaufen lassen bis er wieder bei 0 ist, dauert 9 Takte.
Danke für die Antworten. ICR3 = 2000 und OCR3A = 100 War die angegebene Lösung . Ich habe mich am Anfang vertan und habe OCR3A = 2000 geschrieben. Trotzdem bleibt die Problemstellung gleich. ---- Karl Heinz was bedeutet deine Darstellung für die Aufgabenstellung. Mein TOP sollte dann 1999 sein? Bsp: Aktuell ->Danach: |Zählwertindex: 0->1 | 0 1->2 | 1 2->3 | 2 . | . . | . . | . 1997->1998 | 1997 1998->1999 | 1998 1999->2000 | 1999 ----> Indexangabe von 1999 =TOP ?
avrboy schrieb: > Karl Heinz was bedeutet deine Darstellung für die Aufgabenstellung. > > Mein TOP sollte dann 1999 sein? Immer noch nicht verstanden? OK, Ich transferiere das mal. Du hast eine Uhr mit Sekundenzeiger. Der Sekundenzeiger geht in 60 Sekunden einmal rund ums Zifferblatt. Wenn wir mal davon ausgehen, dass die oberste Sekundenzahl am Zifferblatt eine 0 ist, welches ist dann die höchste Zahl die der Sekundenzeiger überstreicht? Steht da links von dieser 0-Markierung 59 oder steht da 60? Wenn der Timer den TOP Wert erreicht hat, dann wird im nächsten Takt der Timer auf 0 zurück gesetzt (aber dann nicht um 1 erhöht, denn du willst ja das Ergebnis 0 habe!). Genauso wie der Sekundenzeiger auch 1 Sekunde braucht um am Zifferblatt von der 59 zur 0 zu kommen. Das Zurückfallen auf 0 braucht auch seinen einen Takt!
Oh danke Karl Heinz. ---- Also soll der Timer einfach bis 1999=TOP zählen (1999 Ticks) und dann resetten (1 Tick) Daraus folgt: 1Tick Resetten 1999 Zählen ------ 2000 Ticks. TOP = 1999 => gewünschte Frequenz!
avrboy schrieb: > (Warum hat mein Professor dann Initialwert : OCR3=2000 da stehen ..das > verwirrt mich ) Weil auch Professoren Menschen sind und Menschen nunmal Fehler machen... Entweder hat er die Übung garnicht selber geschrieben (sehr wahrscheinlich), dann ist sein Fehler, daß er die Aufgabenstellung irgendeines geknechteten und völlig unterbezahlten Assis trotz seines eigenen, überaus komfortablen Gehalts unbesehen übernommen hat oder er hat sie wirklich selber ausgearbeitet, dann hat er das DB nicht gelesen und dadurch einen typischen "Nicht-DB-Leser"-Fehler begangen... In beiden Fällen ist er jedenfalls der Verantwortung nicht gerecht geworden, für die er bezahlt wird. Ich (als anteiliger Souvereign und Geldgeber seines Arbeitgebers) plädiere deshalb für einen entsprechenden Gehaltsabzug und dessen Verwendung für soziale Zwecke. Z.B. eine bessere Bezahlung von Professoren-Assis... Das würde der Lehre ganz sicher mehr nützen, als neue Professoren-Pöstchen oder eine noch bessere Bezahlung dieses weitgehend nutzlosen Karrieristen-Packs. Wie immer bestätigen hier die extrem wenigen Ausnahmen echter Forscher die Karrieristen-Regel. Und nur für diese echten Forscher war eigentlich mal die finanzielle Großzügigkeit bei den Prof-Gehältern gedacht, um ihnen halt freie Forschung ohne auch nur die Aussicht auf mittelfristige Gewinne aus den Forschungsergebnissen möglich machen sollte... Naja, die meisten wirklich bedeutenden Forscher sind ja sowieso erst Professoren geworden, NACHDEM sie ihre wegweisenden Forschungsergebnisse vorgelegt hatten. Denen gönne ich allerdings die Annehmlichkeiten eines komfortablen Gehaltes, das ist hier in der Regel als Schadensersatz der Menschheit für ein selbstloses und entbehrungsreiches Leben zum Nutzen der Menschheit zu werten...
haha.. naja ok .. also hier noch einmal ein weiterer Ausschnitt aus dem Skript: Zitat Anfang: ICR1 = periode; Zitat Ende also wäre das dann auch falsch
Hi >also hier noch einmal ein weiterer Ausschnitt aus dem Skript: >Zitat Anfang: >ICR1 = periode; >Zitat Ende >also wäre das dann auch falsch Nein. Was hat ICRn mit OCRxx zu tun? Das sind zwei total unterschiedliche Baustellen. MfG Spess
Nicht wirklich, ich weigere mich zu Glauben das du Spess den Zusammenhang bei PWM und dem ICR nicht kennst!
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.