mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC PWM Output als Frequenzgenerator 30 Hz bis 1kHz?


Autor: MathiasM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi *,

mein Problem: ich möchte gerne an einem PIC (in meinem Fall der
PIC18F452) an einem PIN ein Rechtecksignal ausgeben können mit 50/50
Pulsweite (fest). Die Frequenz sollte im Bereich 30 Hz bis max. 1000 Hz
vom Programm her variabel einstellbar sein, dabei aber möglichst genau
arbeiten. Also auch "krumme" Werte wie z.B. 123,4 Hz sollten möglich
sein.

Natürlich könnte ich einen PIN wechselseitig an/abschalten und die
Pausenzeiten vorher berechnen, doch das ganz soll mein Hauptprogramm
nicht verlangsamen. Da ich mehrere IRQ Quellen nutze scheidet die
Ausgabe im IRQ wohl auch aus, da das Signal sonst wahrscheinlich nicht
immer 100% stabil sein wird wenn die Bearbeitung eines anderen IRQs
ansteht.

Nun, der PIC hat ja einen PWM Ausgang. Das dumme ist nur das ich mich
mit dem PWM absolut noch nie beschäftigt habe ;-)

Meint ihr der PWM Ausgang ist geeignet für meine Anwendung? Kennt
jemand evtl. bereits fertige Routinen die das erledigen (Frequenz oder
Zeitkonstante übergeben -> Freq. liegt am PWM Ausgang an)?

Oder hat jemand evtl. eine andere Idee wie das am sinnvollsten zu
bewerkstelligen ist?

Danke für alle Antworten im voraus!
Gruß,
Matze

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In dem Frequenzbereich ist das PWM-Modul nicht geeignet. Mit dem
CCP-Modul liegst Du allerdings richtig.

Schau dir das mal im Datenblatt an. Im Compare-Mode wird der Timerwert
mit CCPR1 (bzw. CCPR2) verglichen. Ist der Wert gleich, dann wird der
Timer rückgesetzt und eine Aktion ausgelöst. Das kann ein Interupt, das
Setzen, das Rücksetzen oder das Togglen eines Outputs sein.

Also CCP-Module und Timer richtig konfigurieren und CCPRx mit dem
doppelten, der Frequenz entsprechenden Wert laden. Den Rest macht die
Hardware.

Steffen

Autor: MathiasM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hört sich doch prima an :-)
Danke für den Tipp, Steffen!

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.