Hallo
Habe folgendes Problem:
Wen ich einen Lüfter mit der "High-Side-PWM" auf 100% setze und die
Drehzahl mit einem Interupt messe Stimmt die Drehzahl.
Wen ich jetzt aber den Lüfter mit ca. 50% laufen lasse (Compare1a = 127)
Steigt die Drehzahl.
Ich kann mir vorstellen das das an den Timern liegt.
Ist das so?
Und Wie kann ich Abhilfe schaffen?
Hier mal der Code.
Ist verbesserungsbedürftig aber funktioniert soweit erstmal bis auf die
PWM Sache.
Peter K. schrieb:> Hallo> Habe folgendes Problem:> Wen ich einen Lüfter mit der "High-Side-PWM" auf 100% setze und die> Drehzahl mit einem Interupt messe Stimmt die Drehzahl.
Wie gemessen?
>> Wen ich jetzt aber den Lüfter mit ca. 50% laufen lasse (Compare1a = 127)> Steigt die Drehzahl.
Die angezeigte Drehzahl oder die Drehzahl in echt?
>
OK.
ALso nicht mit einem unabhängigen Messgerät festgestellt.
D.h. der Aussage "die Drehzahl stimmt" kann man nicht trauen.
> sorry mein Fehler!> Die Drehzahl steigt nur auf dem Display!
Ich seh keinen wirklichen Grund dafür, ausser der Verwendung von
Floating Point in der ISR, was unklug ist. Ob das soviel ausmacht?
Speck halt erst mal ab und gib nur die gemessenen Werte aus. So wie sie
sind. Keine Umrechnerei.
Karl Heinz Buchegger schrieb:> OK.> ALso nicht mit einem unabhängigen Messgerät festgestellt.> D.h. der Aussage "die Drehzahl stimmt" kann man nicht trauen.
Doch in etwa +-100 sind aber auch nicht so schlimm!
Der Lüfter soll 1200RPM machen und 1230 hab ich aufm Display
Wen ich den Lüfter via PWM drossel ca. 50% dann bekomme ich erst
25000RPM und nach einer weile dann dauerhaft -23000RPM
Ich glaube hier ist der integer schon zu klein oder?
Karl Heinz Buchegger schrieb:> Speck halt erst mal ab und gib nur die gemessenen Werte aus. So wie sie> sind. Keine Umrechnerei.
Gut ist klar jetzt gibt er mir ca. 1400 aus!
(1400 interupts pro sekunde / 2 * 60 = 42000 RPM)
Durch 2 weil der Lüfter 2 Signale pro Umdrehung ausgibt!
Hat keiner ne idee woran das liegen kann?
Ach ja die Drehzahl am Display verhält sich parallel zur echten
Drehzahl.
zb. angezeigt wird "40000" wen ich jetzt den Lüfter mit der hand ein
bischen
bremse wird auch die Drehzahl kleiner!
Kann es sein das sich die Timer in die Quere kommen???
(Timer für Sekundentakt und Timer für PWM)
Peter K. schrieb:> Gut ist klar jetzt gibt er mir ca. 1400 aus!> (1400 interupts pro sekunde / 2 * 60 = 42000 RPM)> Durch 2 weil der Lüfter 2 Signale pro Umdrehung ausgibt!
Und?
Was passiert, wenn du die PWM veränderst?
Steigt oder fällt der Wert?`
Oder anders gesagt: Verhalten sich diese Werte in der Tendenz so wie du
es erwarten würdest?
Peter K. schrieb:> Kann es sein das sich die Timer in die Quere kommen???
Die Timer nicht.
Aber die Auswertungs-ISR des Timers behindert das Erfassen der Pulse
durch die anderen Interrupts. Die Floating Point Rechnerei da drinnen
muss nicht sein, so dass diese ISR schnell verlassen werden kann.
Die andere Frage ist: sind eigentlich die Rückmeldepulse vom Lüfter
prellfrei?
> (Timer für Sekundentakt und Timer für PWM)
Die kommen sich nicht ins Gehege. Der PWM-Timer läuft ja sowieso
unabhängig von allem anderen. Der molocht einfach nur vor sich hin uns
schaltet den PWM-Pin brav um.
Kann es sein das dir die PWM in deinen Zähleingang reinspuckt, bei 100%
stimmt dann die Drehzal weil ED = 100% und sobald du mit der PWM
runtergehst zählst Du zusätzlich zu den Umdrehungsimpulse die
Störimpules und die Drehzahl steig.
Karl Heinz Buchegger schrieb:> Und?> Was passiert, wenn du die PWM veränderst?> Steigt oder fällt der Wert?`
verhält sich genau umgedreht:
Wenn ich compare1a auf 200 stelle habe ich auf dem Display ca. 6000RPM!
Wenn ich compare1a auf 150 stelle habe ich 14000RPM auf dem Display!
Karl Heinz Buchegger schrieb:> Die andere Frage ist: sind eigentlich die Rückmeldepulse vom Lüfter> prellfrei?
Wenn ich den Lüfter (compare1a) auf 100% laufen lasse stimmen ja die
werte.
Also denke ich mal das das damit nichts zu tun hat.
Tek schrieb:> Kann es sein das dir die PWM in deinen Zähleingang reinspuckt, bei 100%> stimmt dann die Drehzal weil ED = 100% und sobald du mit der PWM> runtergehst zählst Du zusätzlich zu den Umdrehungsimpulse die> Störimpules und die Drehzahl steig.
An das habe ich auch schon gedacht aber ich kann mir nicht vorstellen
wie das sein kann!
Ich habe im Anhang mal das komplette Programm und den Schaltplan!!!