PWM API
概要
PWM API は、単一ピンのハードウェア PWM 出力を制御するための低レベル API です。
xmc::pwm::createPwmDriver() で生成して使用します。
設定
xmc::pwm::PwmConfig
struct xmc::pwm::PwmConfig {
uint32_t freqHz;
uint32_t period;
};
PWM 初期化時に使用する設定構造体です。
freqHz には PWM の周波数を Hz 単位で指定します。 period にはデューティサイクルの最大値(分解能)を指定します。
xmc::pwm::getDefaultPwmConfig
xmc::pwm::PwmConfig xmc::pwm::getDefaultPwmConfig();
推奨デフォルト値で初期化された PwmConfig を返します。 PwmDriverClass::start() に渡す設定値を取得するために使用します。
PwmDriver
PwmDriver は std::shared_ptr<PwmDriverClass> のエイリアスです。
xmc::pwm::createPwmDriver
xmc::pwm::PwmDriver xmc::pwm::createPwmDriver(int pin = XMC_PIN_GPIO_0);
PwmDriver を生成して返します。 通常はこの関数でドライバを作成し、start() 後に write() を使用します。
start
XmcStatus xmc::pwm::PwmDriverClass::start(const xmc::pwm::PwmConfig &cfg, float *actualFreqHz = nullptr);
PWM 信号の生成を開始します。
cfg には初期化設定を指定します。 actualFreqHz が nullptr でない場合は、実際に設定された周波数 [Hz] を書き込みます。
戻り値は XmcStatus で、成功時は XMC_OK です。
stop
XmcStatus xmc::pwm::PwmDriverClass::stop();
PWM 信号の生成を停止します。 戻り値は XmcStatus で、成功時は XMC_OK です。
write
XmcStatus xmc::pwm::PwmDriverClass::write(uint32_t cycle);
PWM のデューティサイクルを設定します。
cycle には 0 から PwmConfig::period の範囲でデューティサイクル値を指定します。 戻り値は XmcStatus で、成功時は XMC_OK です。