Hallo, ich brauche an einem Mega32 4 PWMs mit 25kHz, bei denen ich das Tastverhältnis frei einstellen kann (ca. in 5% Schritten). Damit arbeit eich im Moment mit dem Counter0 im FastPWM Modus. Das Problem ist nur, mit clkIO von 16MHz komm ich dann ohne Prescaler auf 62,5KhZ und mit /8 Prescaler auf 7,8 kHz. Ich brauche aber zwischen 21 und 28. Was kann ich machen (außer einen anderen Quarz zu nehmen)? Oder hab ich mich gar verrechnte? Ich hab leider kein Oszi zum messen.. Gruß
Das ich a) keinen da hab b) auf meinem Evalboard ungern rumlöte c) ich die Rechenleistung evtl brauche..
Uuhh wrote:
> Ok. Und 65kHz PWM ist nicht gut weil ... ?
Seine Schaltung 25kHz können soll...
Hallo Sir Sydom, hab mal kurz den hier oft geschmähten ICC gefragt: //TIMER1 initialize - prescale:1 // WGM: 14) PWM fast, TOP=ICRn // desired value: 25KHz // actual value: 25,000KHz (0,0%) void timer1_init(void) { TCCR1B = 0x00; //stop TCNT1H = 0xFD; //setup TCNT1L = 0x81; OCR1AH = 0x02; OCR1AL = 0x7F; OCR1BH = 0x02; OCR1BL = 0x7F; ICR1H = 0x02; ICR1L = 0x7F; TCCR1A = 0xB2; TCCR1B = 0x19; //start Timer } Ich hab mal beide Varianten gemacht: A mit CLEAR und B mit SET am Ausgang. Der PWM-Wert kommt in OCR1A/B, Bereich 0-639 (also ~0,15% Auflösung). Das setzen der Register mit einzelnen Bitbezeichnungen beherscht der ICC leider nicht! gruß hans
Danke, ber das löst das Problem nicht. Mit ist klar dass ich mit dem 16bit Counter das hinkriege, aber davon habe ich nur EINEN. Ich wollte 4 PWM Channel und dafür die beiden 8bit und den 16bit verwenden.. Was ich aber im Moment auch nicht hinbekomme ist mit dem 16bit Counter 2 unabhängige PWM zu erzeugen..
Für 4 PWM-Kanäle in Software ist die Frequenz von 25 kHz zu hoch bzw. die 16 MHz zu langsam. Bleibt ein Mega mit 2 16-Bit Timern (z.B. Mega64) was auf einem fertigen Board schlecht geht, eine Lösung mit Slaves (z.B. kleinen Atmels mit Seriellem interface) oder doch der Quarz. Bei 6 MHz hast du 23,4375 kHz (mit 6,144 MHz genau 24 kHz) und 8 Bit Auflösung in Hardware. gruß hans
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.