Mbed OS 文档翻译 之 参考(API(驱动(PwmOut)))

PwmOut

使用 PwmOut 接口控制 PWM 信号的频率和占空比。

提示:

  • 首先设置循环时间,然后使用 write() 函数的相对时间段或使用 pulsewidth() 函数的绝对时间段设置占空比。
  • 默认时间为 0.020 秒,默认脉冲宽度为 0。

PwmOut 类参考

mbed::PwmOut 类参考

公共成员函数
  PwmOut (PinName pin)
void  write (float value)
float  read ()
void  period (float seconds)
void  period_ms (int ms)
void  period_us (int us)
void  pulsewidth (float seconds)
void  pulsewidth_ms (int ms)
void  pulsewidth_us (int us)
PwmOut &  operator= (float value)
PwmOut &  operator= (PwmOut &rhs)
  operator float ()
受保护的成员函数
void  lock_deep_sleep ()
void  unlock_deep_sleep ()
受保护的属性
pwmout_t  _pwm
bool  _deep_sleep_locked

PwmOut hello, world

此代码示例使用默认时间段 0.020 秒,并将占空比从 0 % 增加到 100 %,增量为 10 %。

main.cpp                                                                                                                                              导入到 Mbed IDE

#include "mbed.h"

PwmOut led(LED1);

int main() {
    // specify period first
    led.period(4.0f);      // 4 second period
    led.write(0.50f);      // 50% duty cycle, relative to period
    //led = 0.5f;          // shorthand for led.write()
    //led.pulsewidth(2);   // alternative to led.write, set duty cycle time in seconds
    while(1);
}

PwmOut 代码示例

示例一

此代码示例将周期(以秒为单位)和占空比设置为浮点周期的百分比(范围:0 到 1)。此代码段的作用是使 LED2 在 4 秒周期内闪烁 50 %,两秒钟开启,两秒钟关闭。

main.cpp                                                                                                                                                 导入到 Mbed IDE

#include "mbed.h"

PwmOut led(LED2);

int main() {
    // specify period first, then everything else
    led.period(4.0f);  // 4 second period
    led.write(0.50f);  // 50% duty cycle
    while(1);          // led flashing
}

示例二

下面的示例执行相同的操作,但不是将占空比指定为周期的相对百分比,而是将其指定为以秒为单位的绝对值。在这种情况下,我们有一个四秒的周期和一个两秒的占空比,这意味着 LED 将开启两秒钟并关闭两秒钟。

main.cpp                                                                                                                                              导入到 Mbed IDE

#include "mbed.h"

PwmOut led(LED2);

int main() {
    // specify period first, then everything else
    led.period(4.0f);  // 4 second period
    led.pulsewidth(2); // 2 second pulse (on)
    while(1);          // led flashing
}


你可能感兴趣的:(Mbed,OS)