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回取得するか、設定した周期(周波数)で決まる値を計算に使って良いです。途中で、周期(周波数)を変えた時は、再度取得してください。
分かりました。お答えいただきありがとうございました。