PinOut: TIMn_CHm
TIMn:
- Channelm を PWM Generation CHm に設定
- Counter Period を好きな値に設定
N 段階に設定したい場合 N-1 に設定してください
- Prescaler を以下の式で得られた値に設定
t = APB timer clocks (Clock Configurationで確認可能)
f = 設定したい周波数 (低くなく高くなく。1kHzが目安)
c = Counter Period
Prescaler = t ÷ f ÷ c
PWM( TIM_HandleTypeDef *htim, uint32_t channel );PWM( TIM_HandleTypeDef &htim, uint32_t channel );ピンを設定します
// 例 PWM pwm(&htim2, TIM_CHANNEL_1); PWM pwm(htim2, TIM_CHANNEL_1);
void start() const noexcept;
HAL_TIM_PWM_Start()
を実行します// 例 pwm.start();
void stop() const noexcept;
HAL_TIM_PWM_Stop()
を実行します// 例 pwm.stop();
void setCompare( uint32_t compare ) const noexcept;
__HAL_TIM_SET_COMPARE()
を実行します// 例 pwm.setCompare(100);
void setCompare( uint16_t numerator, uint16_t denominator ) const noexcept;numerator: 分子, denominator: 分母 とした デューティ比で
setCompare(uint32_t)
を実行します 100% を超えている時は何もしません// 例 pwm.setCompare(97, 100); // デューティー比: 97% pwm.setCompare(1, 2); // デューティー比: 50%
uint32_t getCounterPeriod() const noexcept;CounterPeriod を返します
// 例 uint32_t counterPeriod = pwm.getCounterPeriod();