Hallo,
ich bräuchte ein bisschen Hilfe für meine Projekt 4-Kanal
Lüftersteuerung.
Kurze Zusammenfassung:
-At Mega32
-3x 3 Pin Lüfter Ansteuerbar; Stufenlos Regelbar mit Hilfe von PWM =>
RC-Glied => OP => Mosfet;
-1x 4 Pin Lüfter Anschluss mit 25 kHz PWM zur Regelung.(Timer1)
Und zwar habe ich ein Problem mit der Erzeugung des 25kHz Pwm mit Hilfe
des Timers1.
Ich setzt brav meine Register:
1 | TCCR1A = (1<<COM1A1) // Nicht invertierende PWM.
|
2 | |(1<<WGM13);//|(1<<WGM10); // FAST PWM Phase Frequ. Correct
|
3 | TCCR1B = (1<<CS11); // Prescaler 8 ( N )
|
So. Nun geh ich nach der Formel aus dem Datenblatt vor um meine 25 kHz
zu erzeugen:
Fclk = clk (16MHz)
--------
2*N*TOP
Top kann ich verändern durch setzen des Registers ICR1.
Wenn ich jetzt die Formel umstelle um 25kHz zu erzeugen ( bei Prescaler
8 ) komm ich auf ein TOP von 40.
Dies schreib ich dann ins Register ICR1.
So wenn ich die Frequenz mit dem Oszilloskop nachmesse komme ich auf 250
Hz. Wieso?!
-Wo ist mein Rechenfehler?
-Welche Register Muss ich sodann setzen um die Pulsbreite zu
verändern?OCR1?
-Ist der Modus dafür dann auch richtig gesetzt?