PWM出力
LEDの明るさを変更したり、モーターの回転速度を変更したりする
[プロジェクト名].ioc
-Pinout & Configuration
-Timers
-TIM3
-Mode
-Channel3
をPWM Generation CH3
、Configuration
-Parameter Settings
-Counter Settings
-Prescaler
を83
4
、Counter Period
を999
255
、PWM Generation Channel3
-Output compare preload
をDisable
に設定。今回はTIM3
を使用した。
保存しコードを作成。main.c
に処理を追記。
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_3,100);
}
/* USER CODE END 3 */
100
がパルス幅にあたる部分であり、範囲は0
~255
にする。
範囲やPWM周期などはPrescaler
やCounter Period
などから求められる。式については'ここ'に記載している。Counter Period
が範囲の個数-1
であるということだけは覚えていて欲しい。