18F2550
48MHz
I have set up CCP1 to provide a 50KHz PWM using the code below. However I need to use a 10bit number for the duty cycle. How do I implement that? Do I change
Code:
high_duty=(PWM_SIGNAL>>2)
to
Code:
high_duty=(PWM_SIGNAL)
and also
Code:
low_duty=(PWM_SIGNAL<<6)
to
Code:
low_duty=(PWM_SIGNAL<<8)
?
Code:
PWM_SIGNAL = 255CCP1CON = 111100
PR2 = 239
high_duty=(PWM_SIGNAL>>2) 'high 6 bits in CCPR1L
low_duty=(PWM_SIGNAL<<6) 'low two bits for CCP1CON
low_duty=(low_duty>>2) 'shift back to CCP1CON<5:4>
low_duty.3=1 'PWM configuration bit
low_duty.2=1 'PWM configuration bit
CCPR1L=high_duty
CCP1CON = $0C
T2CON = 4
Thanks.
Bookmarks