mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM mit PCA beim P87C51FA-4B (Assembler)


Autor: Daniel Schwalm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.