Hi, Ich möchte ein PWM - Signal mit einem MEGA16 erzeugen. Ich verwende dazu den PWM Mode (Top=0x03FF), nichtinvertierend. Über die UART wird der zu erzeugender Spannungswert eingegeben. Das Signal wird am Ende durch ein RC-Glied gefiltert Jetzt geht es darum den Comparewert zu berechnen. Meine Überlegung: Ua= 5000mV * ZeitHIGH(=CompareWert) / Periodendauer (=03FF) daraus folgt CompareWert= 03FF * Ua / 5000 Leider stimmt das Ergebniss nicht. Es stimmt nur bei 2500 mv also 1:1 hab ich einen Denkfehler? oder hab ich falsch progrmmiert? mfg J.K.
Ok, Fehler gefunden! Berechnung wäre richtug gewesen! Problem war folgendes: ausgabe=spannung/625; ausgabe*=128; zB: spannung =1000 (1V) 1000/625 = 1,6 > Integer = 1 riesiger Rundungsfehler! mfg J.K
Ich habs jetzt geteilt. weil: zB. 1000*128 > Overflow jetzt hab ich 128 (2^7) und 625 (5^4) factorisiert und rechne abwechselnd mal 2 und durch 5. mfg J.K
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.