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 changetoCode:high_duty=(PWM_SIGNAL>>2)and alsoCode:high_duty=(PWM_SIGNAL)toCode:low_duty=(PWM_SIGNAL<<6)?Code:low_duty=(PWM_SIGNAL<<8)
Thanks.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




Bookmarks