|
Coronのご利用有難うございます。
DCモータのPWM周期を変える方法ですが、coron_init();後に下記のようにすれば変更できます。
(※動作は確認していません)
ただし、DCモータのPWM制御ではタイマ割り込みを使用している為、
周波数を上げすぎると他の処理(RCサーボなど)に影響が出てきますので注意してください。
//DCモータPWM周波数変更関数(Hz=11~720000)
void DC_PWM_Setting(u32 freq){
u32 x=0;
x = 720000 / freq;
TIM_PrescalerConfig(TIM2,(x-1), TIM_PSCReloadMode_Immediate);
}
//周波数変更
u32 DCfreq = 500;
coron_init();
DC_PWM_Setting(DCfreq); //500Hzに変更
USB_puts("DC PWM Frequency = ");//周波数を表示
USB_putn(DCfreq,4); //(周波数,4桁)
USB_puts(" \r\n"); //改行
10Hz以下の場合はもう少し色々と変更する必要が出てきます。
(周波数が遅すぎるとPrescaler値がオーバーフローしてしまう為です)
逆にそのくらいの速さであれば、mainループ内でPWM信号を作ってしまっても良いかと思います。
|