epsilon: Longri:
- Taktfrequenz ATMega48 4 MHz
- das PWM-Signal soll an Pin 15 OC1A herauskommen (ist per Hardware so festgelegt)
- die PWM- Frequenz soll so 0,5 - 1 MHz sein und vom Systemtakt abgeleitet werden und phasenrichtig sein
- das Tastverhältnis soll direkt per Befehl änderbar sein (in ein Register schreiben)
Auf eine so hohe PWM-Frequenz wirst Du nicht kommen. Du kannst den Timer pro Systemtakt nur um 1 hochzählen lassen, während ein PWM-Impuls pro komplettem Durchlauf des Timerregisters zustande kommt. Mit dem Timer1 kannst Du die PWM zwar mit 16-Bit, also sehr fein steuern, aber dafür hast Du eine sehr niedrige PWM-Frequenz. Mit Timer0 oder Timer2 hättest Du nur eine 8-Bit-Auflösung, aber dafür eine höhere PWM-Frequenz. (Ich habe auf die Schnelle beim Atmega8 nachgeschaut, ich hoffe, daß der 48 nicht soviel anders ist.)
Gruß, Stefan.
Den Mega48 kann man bis 20Mhz bequarzen.
Dann Fast-PWM einstellen, dann sollte es gehen.
WGM02:0 = 3 or 7.
Dann kann man 1Mhz in 20 Schritten unterteilen.
Mit 4Mhz kann man nur 4 Schritte bei 1MHZ unterteilen, das ist ja schon fast keine PWM mehr.
Und mit Phase correct pwm wird es nochmal weniger WGM13=1 WGM10=1
Lieber WGM12=1 und WGM10=1
Zuletzt bearbeitet: 30.04.13 21:31 von Hightech