PIC PWM Output als Frequenzgenerator 30 Hz bis 1kHz?

Gast #126810
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
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.