ここでは、PIC コンパイラに pic 16f877 MCU と mikroc を使用して PWM 信号を理解しています。データシートによると、この MCU は PWM で 10 ビットの分解能を持っています。この決議が何を意味するのか理解できません。それを使用してモーターに電力を供給すると、1024 の異なる速度を得ることができるということですか。これは、LEDの光を徐々に増やしてから再び減らすためにmikrocで書いたプログラムです。
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ビットの解像度が何を意味するのか知りたいのですが、それを間違って理解したのか、それとも何か間違ったことをしているのでしょうか。
助けてください....