Ben zelf weer eens aan het knutselen geweest. Vandaag wilde ik op een PIC24FJXXGB002 een LED proberen te dimmen via PWM.
Me code is als volgt:
Alleen het werkt niet helemaal, led gaat wel branden maar wordt niet gedimt...
Heb al wat geprobeerd met de cycle en periode maar helaas helpt dat niet...
Me code is als volgt:
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| int main(void) { PPSUnLock; PPSOutput(PPS_RP7, PPS_OC1); PPSLock; OC1CON1 = 0; OC1CON2 = 0; OC1R = 0x1f3f; //7999 OC1RS = 0x3e7f; //15999 OC1CON2bits.SYNCSEL = 01011; //Timer1 OC1CON1bits.OCTSEL = 100; //Timer1 OC1CON1bits.OCFLT = 0; //PWM OCFB Fault condition has not occurred (this bit is used only when OCM<2:0> = 111) OC1CON2bits.OCINV = 0; //OCx output is not inverted OC1CON1bits.OCM = 0x6; //Edge-Aligned PWM mode on OCx T1CON = 0; TMR1 = 0x00; //Clear timer register PR1 = 0xFFFF; IPC0bits.T1IP = 0x01; //Setup Timer1 interrupt for desired priority level // (This example assigns level 1 priority) IFS0bits.T1IF = 0; //Interrupt request has not occurred IEC0bits.T1IE = 0; //Interrupt request is not enabled T1CONbits.TON = 1; //Starts 16-bit Timer1 while (1) { } } |
Alleen het werkt niet helemaal, led gaat wel branden maar wordt niet gedimt...
Heb al wat geprobeerd met de cycle en periode maar helaas helpt dat niet...
[ Voor 7% gewijzigd door Chris89 op 16-05-2014 19:40 ]