Und ich bekomm nicht mal die 1024 Stufen hin.
Bin an nem Atmega 8 Timer 1 dran mit 16 Bit. Laut Datenblatt WGM10, WGM11, WGM12 auf "high" und WGM13 auf "low" für ne 10Bit Fast PWM dann hab ich gedacht den Prescaler auf 1024 einstellen das er auch bis 1024 zählt. Oder ist das schon in der Theorie falsch?
Hier mal ein Auszug meines Codes:
[CODE]
//1***pwm init********************************************** ************************************
TCCR1B |= (1<<CS12); //Prescaler 1024
TCCR1A |= (1<<WGM10); //Fast PWM Mode
TCCR1B |= (1<<WGM12);
TCCR1A |= (1<<COM1A1) | (1<<COM1B1) ;
OCR1A = 10; //PWM Start-Wert
DDRB |= (1<< PB1); //PWM aktivieren
TCCR1B |= (1<<CS10) | (1<<WGM11); //Erweiterung auf Pulsbreite von 1024
[/CODE
Was mach ich falsch? Wohl ne ganze Menge
Sobald ich die letzte Zeile drin hab steigt die Spannung gar nicht mehr an und er Zählt sie trotzdem nur bis 256 hoch.
Gruß Andi
Gruß Andreas
--------------------------------------------------------------------------------------------------------------------
Manchmal muss man laufen bevor man gehen kann.
Sorry, aber: Alles Falsch!
Ich kenne keinen AVR, der mit n-Bit-Timern nicht auch n-Bit-PWM machen kann. Auch wenn es vielleicht davon eine Ausnahme gibt: Die üblichen Verdächtigen können 16-Bit PWM mit 16-Bit Timern. Ich zitiere Mal aus dem Datenblatt des ATMega16:
mfGThe PWM resolution for fast PWM can be fixed to 8-bit, 9-bit, or 10-bit, or defined by either ICR1
or OCR1A. The minimum resolution allowed is 2-bit (ICR1 or OCR1A set to 0x0003), and the
maximum resolution is 16-bit (ICR1 or OCR1A set to MAX)
Markus
Tiny ASURO Library: Thread und sf.net Seite
Lesezeichen