Forum: Mikrocontroller und Digitale Elektronik PMW erzeugen mit PIC24FJ64GB002


von Amanre (Gast)


Lesenswert?

Hallo Zusammen,

ich möchte gerne mit dem PIC24FJ64GB002 5 seperate PWM signale für div. 
LED´s erzeugen.
Die Pulsweite soll durch Variablen (1 je PWM) gesteuert werden.

Alle LED´s befinden sich auf einem Remappablen peripheral pin, die im 
entpsrechendem Register der Funktion zugeordnet werden muss soweit kein 
Problem.

Mir ist unklar wie ich dies Programmieren muss da im Datenblatt immer 
die Rede von PWM mit "OUTPUT COMPARE WITH
DEDICATED TIMERS" die rede ist.



Datenblatt µC

http://ww1.microchip.com/downloads/en/DeviceDoc/39940d.pdf


Ich freue mich über eure Hilfe!

Mit freundlichen Grüßen

Amanre

von Gästchen (Gast)


Angehängte Dateien:

Lesenswert?

Ich häng dir mal was für den PIC24FV32KA301 an, musst du halt anpassen.

Da gibts einen Init-Funktion (initpwm), die schaltet die PWM ein.
Die zweite Funktion setPWM(DC, periode, sysclock) berechnet und setzt 
Periodendauer und Tastverhältnis.
DC ist in %, periode ist in µs, Der sysclock ist in Hz. Man kann auch 
andere Taktquellen verwenden.

Diese Funktionen verwenden OCFB (Fault Input), dass musst du halt 
auskommentieren. Die PWM kommt zu OC2 heraus. Das musst du dann auf 
einen Port mappen. Der FV32KA301 hat kein Portmapping, weshalb das 
fehlt.

Im Übrigen ist das vom Datenblatt abgetippt. Da gibts ein Kapitel "Ouput 
Compare", da steht ein Kochrezept drin.

Ob das funktioniert? Weiß nicht, sehr viel getestet hab ich nicht. Mit 
8MHz, 250µs und 80% gehts. Ich glaube, die ist "center alligned", aber 
das müsstest du nachkucken.

Hat mich ca. 20min gekostet. Beispiele gibts auch bei Microchip, aber 
abtippen ging schneller, als sich da einlesen.

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
Noch kein Account? Hier anmelden.