pwmについて

stlと申します。

RAマイコンを使用しています。

FSPのPWMのサンプルについて質問です。

R_GPT_InfoGetで値を取得して、デューティー比を設定しているのはなぜでしょうか?

この手順を踏まなければ、デューティー比を変更することはできないのでしょうか?

(void) R_GPT_InfoGet(&g_timer_pwm_ctrl, &info);
current_period_counts = info.period_counts;
duty_cycle_counts = (uint32_t) (((uint64_t) current_period_counts * 100) / GPT_EXAMPLE_MAX_PERCENT);

err = R_GPT_DutyCycleSet(&g_timer_pwm_ctrl, duty_cycle_counts, GPT_IO_PIN_GTIOCB);

  • R_GPT_DutyCycleSetに与える引数が

    duty比(0-1とか0-100%)ではなく、カウント数

    R_GPT_DutyCycleSet (timer_ctrl_t *const p_ctrl, uint32_t const duty_cycle_counts, uint32_t const pin)

     第2引数:duty_cycle_counts

    に、なっているので、1周期のカウント数が予め判っていれば、R_GPT_InfoGetを使う必要はありません。

  • info.period_counts;は、一度値を取得すれば、それ以降はその値をずっと使用して、dutlサイクルカウントの設定を出来るものなのでしょうか?

  • PWM周期(周波数)を変えなければ、周期値(period_counts)は変わらないので、最初の方で1回取得するか、設定した周期(周波数)で決まる値を計算に使って良いです。途中で、周期(周波数)を変えた時は、再度取得してください。

  • 分かりました。お答えいただきありがとうございました。