có vẻ bác đang định dùng PWM của CCP module,thế thì để tui nói về cái này trước:
một đoạn code do tui set nhe:
void pwm_ccp()
{
setup_ccp1(CCP_PWM); // xuất PWM ra chân RC2
setup_ccp2(CCP_PWM); // xuất PWM ra chân RC1
setup_timer_2(T2_DIV_BY_1, 115, 1); // cal đi,trong datasheet phần CCP có cong thức
//đó :115 là giá trị nạp vào timer2---> quyết
//định tần số PWM
}
có một điều,xung xuất ra tích cực mức 1,nghĩa là mức duty max sẽ cho ra mức high luôn.
=>
set_pwm2_duty(duty2); // xuất PWM, duty là biến
set_pwm1_duty(duty1);
chú ý,duty có giới hạn,đến khi duty max thì dù có tăng nữa thì chân output cũng luôn ở mức cao!
|