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
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
Das hört sich doch prima an :-) Danke für den Tipp, Steffen!
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.