Trích:
Nguyên văn bởi dungnt7
Theo mình biết thì giá trị value được biểu diễn bằng 10bit, giá trị lớn nhất của value là 1024.
Value không phải lúc nào cũng nhỏ hơn period, theo datasheet thì (pwm_duty/pwm_period)=(value/(4*(tmr2+1))).
Đoạn chương trình sau xuất xung PWM 50%, f=5Khz, ở chân CCP1
void main()
{
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_4,249,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(512);
set_tris_c(0x00);
}
Vấn đề của bạn ngtdung.nguyen mình cũng chưa hiểu vì sao bị như vậy.
|
Không cần set_tris_c(0x00) liệu có ảnh hưởng gì ko bạn