Hallo Zusammen,
habe folgendes Problem: Ich dimme eine LED-Endstufe über CCP10. Das
funktionert auch alles recht gut, nur wenn ich den PWM abschalte
passiert es ab und an (~ 5-10%) dass der Ausgang auf high bleibt und die
Endstufe statt abzuschalten maximalen Strom liefert.
Mit folgender Routine schalte ich den PWM zu bzw. ab:
1 | void pwm_aus (void)
|
2 | {
|
3 | CCP10CONbits.CCP10M3 = 0; //disable PWM
|
4 | CCP10CONbits.CCP10M2 = 0;
|
5 | return;
|
6 | }
|
7 | void pwm_an (void)
|
8 | {
|
9 | CCP10CONbits.CCP10M3 = 1; //enable PWM
|
10 | CCP10CONbits.CCP10M2 = 1;
|
11 | return;
|
12 | }
|
lt. Datenblatt ist das die richtige Methode.
Es gäbe natürlich die Möglichkeit den Pin beim Auschalten in der Methode
als Ausgang zu definieren und auf 0 zu setzen (und in der anderen
Methode zurückzusetzen), was aber keine schöne Lösung ist.
Hab auch schon eine Hardwarlösung für diese Problem, aber vielleicht
mache ich ja auch etwas falsch.
Recht herzlichen Dank!