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)
PwmOutoperator= (float value)
PwmOutoperator= (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
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值