Hi ich verwende gerade einen PIC24 aus der PIC24FJ256GB110 Famalie!!!
Durch verstellen von dem OC1RS Register müsste sich am Ausgang doch was
machen!!! Aber es Passiert nichts!
Könnt ihr mir bitte weiterhelfen!
1
voidInitializeTimer2For_PWM(void)
2
{
3
T2CONbits.TON=0;/* Timer2 is used for generating PWM frequency */
Sorry, ich habe keine Zeit deinen Code genau anzuschauen, daher gebe ich
dir mal ein Beispielcode von mir, mit dem es bei mir funktioniert.
Theoretisch sollte die LED gedimmt blinken:
(er ist zusammengestückelt aus einem Projekt, ich hoffe ich habe nichts
vergessen oder falsch zusammengesetzt)
Vielleicht siehst du damit auch selbst, was bei deinem Code anders, bzw.
falsch ist.
Falls es nicht klappt, versuche mal die Pin Umlegung ganz am Anfang des
Codes zu machen, bzw. das Flag IOL1WAY_OFF zu setzen, um mehrmals die
Pinbelegung ändern zu dürfen, sofern du es benötigst.
Falls es noch aktuell ist, es scheint als hat auch der PIC24 Peripheral
Pin Select, heißt du musst die OC1 Funktion erst auf den Ausgangspin
legen.
Datenblatt S. 138. steht wie und wo. Davor sollte sich auch nix tun am
Pin.
Und, mit den zwei register OC1R OC1RS stellt man den pulse ein.
Jenach konfiguration des OC (high->low / low->high) schaltet er beim
OCxR high(low) und beim OCxRS wieder low(high).
mit XC32 Compiler ist das ein zweizeiler (16 bit pwm, 50% duty):
Der Code ist allerdings für nen PIC32, das Mapping ist vermutlich beim
24 etwas anders in der Bezeichnung.
Ach ja, und je nach verwendetem Debugging Tool kann die Zeile mit dem
SetDigitalOut notwendig werden, weil der Pin per default als Analog Pin
beim Debugging läuft. Einfach mal testen..
Viel Erfolg:)