这里我使用 pic 16f877 MCU 和 mikroc 进行 pic 编译器来理解 PWM 信号。数据表说这个 MCU 在 PWM 中具有 10 位分辨率。我不明白这个决议是什么意思。这是否意味着如果我用它为电机供电,我可以获得 1024 种不同的速度。这是我在 mikroc 中编写的一个程序,用于逐渐增加 LED 的光并再次减少它。
int i=0;
void blink_up(){
i++;
PWM1_Set_Duty(i);
Delay_ms(10);
}
void blink_down(){
i--;
PWM1_Set_Duty(i);
Delay_ms(10);
}
void main() {
trisc=0;
portc=0;
PWM1_Init(5000); //initilize PWM 1 at 5kHz
PWM1_Start();
PWM1_Set_Duty(i);
while(1){
while(i != 1023){
blink_up();
}
while(i!=0) {
blink_down();
}
}
但这不会给出预期的结果。LED 逐渐闪烁并突然关闭,然后再次逐渐闪烁。但是当我将行更改
while(i != 1023)
为 `while(i != 255) 时,它会给出预期的结果。
所以我想知道 10 位分辨率是什么意思,是我理解错了还是我做错了什么。
请帮忙....