PIC16LF1527 PWM Abschaltung funktioniert nicht immer

OP #3138653
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!
OP #3138709
Seite 192 links unten Note 2 (allerdings muss "relinquish" nicht 
zwangsläufig bedeuten, dass der Pin immer explizit auf 0 gesetzt wird)

und Seite 197:

>  bit 3-0 CCPxM<3:0>: CCPx Mode Select bits

>  0000 = Capture/Compare/PWM off (resets CCPx module)

daraus würde ich ein explizites Abschalten des PWM-Blocks ableiten
Gast #3138726
>lt. Datenblatt ist das die richtige Methode.
Das glaube ich schon deswegen gar überhaupt niemals nicht,
weil es  Übergangs-Zwischenwerte  ergibt.
Dazu braucht man das Datenblatt noch nichtmal aufzurufen.
Gruss
OP #3138765
Nachtrag:
Auch zuerst CCPR10L und dann CCP10CON auf 0x00 zu setzen
(duty-cycle auf 0% und abschalten)funktioniert nicht immer.

Habe die Lösung von be stucki umgesetzt und dann funktioniert es auch.

Aber warum sich der PWM-Block nicht zuverlässig abschalten lässt bleibt 
mir weiterhin ein Rätsel.
Gast #3138781
Gerhard M. schrieb:
> Habe die Lösung von be stucki umgesetzt und dann funktioniert es auch.
>
> Aber warum sich der PWM-Block nicht zuverlässig abschalten lässt bleibt
> mir weiterhin ein Rätsel.

Poste doch deinen ganzen Quellcode, vielleicht hängts an einer anderen 
Stelle
Gast #3139607
,... schrieb:
> Gerhard M. schrieb:
>> Habe die Lösung von be stucki umgesetzt und dann funktioniert es auch.
>>
>> Aber warum sich der PWM-Block nicht zuverlässig abschalten lässt bleibt
>> mir weiterhin ein Rätsel.
>
> Poste doch deinen ganzen Quellcode, vielleicht hängts an einer anderen
> Stelle

Ist wohl nicht mehr wichtig.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.