Hallo! Ich habe ein kleines Problem mit der PWM-Erzeugung über das PCA (Programmable Counter Array) beim P87C51FA-4B. Die Erzeugung des PWM-Signals funktioniert ohne Probleme, doch bekomm ich den Pin, über den das Signal ausgegeben wird, nie ganz auf 0. Es sind immer noch sehr kurz 1-Phasen zu erkennen. Das liegt daran, da der Pegel 1 wird, wenn der Compare-Wert (CAPLn-Register) groesser oder gleich des Timer-Wertes ist. Also habe ich bei höchst möglichem Compare-Wert (FF) trotzdem noch einmal die Bedningung Compare-Wert=Timer-Stand erfüllt und bekomme eine kurze 1. Nun habe ich in verschiedenen Dokumentationen gelesen, dass ich um einen reinen 0-Pegel zu bekommen, den Pin direkt löschen muss (CLR). Siehe unter anderem Intel PCA Cookbook: http://www.intel.com/design/mcs51/applnots/27085101.PDF auf Seite 19-21. Leider funktionieren alle meine bisherigen Versuche nicht. Meine Idee war: mov A,meinWert ; Vergleichswert laden jz f1_aus ; ist Vergleichswert 0? mov CAPH0,A ; ins PCA-Array (8Bit PWM) mov CAPM0,#%01000010 ; 8-Bit PWM einschalten ljmp f1_end ; Ausschalten ueberspringen f1_aus: mov CAPM0,#%00000000 ; 8-Bit PWM ausschalten CLR P1.3 ; PWM-Ausgang auf 0 setzen f1_end: Ich habe auch einige andere Kombinationen probiert, z.B. das weglassen von "mov CAPM0,#%00000000", da das direkte setzten des Pins laut Dokumentation auch die PWM-Funktion unterbricht. Alles allerdings ohne Erfolg. Nun brtäuchte ich ein konkretes Beispiel für meinen Fall. Weiss jemand wie ich das Problem lösen kann? Danke schon mal! Mit freundlichen Grüße, Daniel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.