Hallo, habe mit dem 16-Bit Timer am Atmega88 ein PWM Signal erzeugt. Folgende Einstellungen habe ich vorgenommen: TCCR1A = (1<<COM1A1)|(1<<COM1A0)|(1<<WGM10); TCCR1B = (1<<CS12) | (1 << WGM12); Laut Datenblatt ist so der 8-Bit Fast-PWM Modus eingestellt mit einem Vorteiler von 256 eingestellt. Nach dieser Formel aus dem Datenblatt für die Frequenz des PWM-Signals: f_PWM = f_CLK /( N * (1+TOP)) = 1475600 / (256 * (1+255)) = 225 müsste das PWM Signal eine Frequenz vvon 225 Hz besitzen. Jedoch besitzt das PWM Signal nach der Messung am Oszilloskop (siehe Anhang) ca. 900 Hz. Woran könnte das liegen?
1) du scheinst eine 0 bei F_clk vergessen zu haben, das betrifft aber wohl nur das Posting 2) Häng mal einen Piezopiepser an den PWM Ausgang und hör was rauskommt. 200Hz sind auch mit wenig musischem Gehör deutlich von 900 zu unterscheiden und so weisst du schon mal, ob du richtig gemessen hast. 3) der Faktor zwischen erwartetem und gemessenem Ergebis ist genau 4 4) am Clk kanns also nicht liegen, denn mit 60Mhz arbeitet der AVR nicht mehr 5) Prüfe im Debugger mal die Timerregister nach, dort wird der Fehler vermutlich liegen. ciao Remo
Hallo remo, leider konnte ich auch mit dem Debugger keinen Fehler im Timer-Register feststellen. Wenn ich einen Vorteiler von 64 verwendet hätte, würde die Frequenz ja passen. Jedoch ist laut Datenblatt ein vorteiler von 256 eingestellt. Wo kann der Fehler noch liegen? Gruß
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.