Hi
> hope this is the correct place. Can't seem to get PWM working, this
is my PWM
> set up routine is below. Have not tried it in hardware - but gpsim
shows the
> correct pin set to an output but it does not have a signal on it.
>
The code looks ok. I only have 18f2XXX devices here and there the pwm
pins are on PORTC (TRISCbits.TRISC1 and TRISCbits.TRISC2) by default and
the TMR2 is enabled with T2CONbits.TMR2ON = 1; In your code you used
TMR2ON = 1, not sure if that works.
According to the microchip ANs its a good habit to first clear the
CCPxCON register to completely disable the CCP-Module before setting own
stuff.
I use the following code to enable both pwm channels on my 18f2XXX devices:
void init_pwm() {
/* setup timer and prescaler */
PR2 = PWM_FREQ;
/* set prescaler */
T2CONbits.T2CKPS0 = T2_PS0;
T2CONbits.T2CKPS1 = T2_PS1;
/* Set the duty cycle initially to zero but dont enable the h-bridge*/
pwm_set_duty_cycle0(0);
pwm_set_duty_cycle1(0);
PORTCbits.RC1 = 0;
/* clear the CCPxCON regs first to turn off the whole CCP-Module*/
CCP1CON = 0;
CCP2CON = 0;
/* two lower bits of the pwm duty cycle register */
CCP1CONbits.DC1B0 = 0;
CCP1CONbits.DC1B1 = 0;
CCP2CONbits.DC2B0 = 0;
CCP2CONbits.DC2B1 = 0;
/* set both CCP modules to PWM Mode */
CCP1CONbits.CCP1M2 = 1;
CCP1CONbits.CCP1M3 = 1;
CCP2CONbits.CCP2M2 = 1;
CCP2CONbits.CCP2M3 = 1;
/* finaly make both pins an output */
TRISCbits.TRISC1 = 0;
TRISCbits.TRISC2 = 0;
/* enable the PWM Module */
T2CONbits.TMR2ON = 1;
#ifdef DEBUG
printf("PWM Module enabled");
#endif
}
hope this helps.
regards,
jan
-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user