打印
[Atmel]

在mbed环境下跑一下SAMD21:PWM1

[复制链接]
911|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mbed库与函数支持PWM端口,PWM不是只有一个变量(如数字或模拟输出)需要控制,而是两个变量,即周期和脉冲宽度或占空比。
通过PwmOut可以创建PWM对象,并为其分配管脚。“=”可以作为简化的表达形式,用来代替write()函数。

     PwmOut 创建一个PwmOut对象,可连接到指定引脚
     Write  设置输出占空比,指定为一个归一化的浮点数(0.0- 1.0)
     read   返回当前输出占空比,测得的数为归一化的浮点数(0.0-1.0)
     period 设置PWM周期,以秒为单位(float),保持相同的点空比
     period_ms 设置PWM周期,以毫秒为单位(int),保持相同的点空比
     period_us 设置PWM周期,以微秒为单位(int),保持相同的点空比
     PulseWidth 设置PWM脉冲宽度,以秒为单位(float),保持相同的工作周期
     PulseWidth_ms 设置PWM脉冲宽度,以毫秒为单位(int),保持相同的工作周期
     PulseWidth_us 设置PWM脉冲宽度,以微秒为单位(int),保持相同的工作周期
     operator =  write()的简写形式


现在要在SAMD21上实pwm最好的方法是通过LED来观察,
那么D21板子上LED究竟支持pwm么?
LED在PB30上:

经查其管脚有如下功能:

以下是程序:
#include "mbed.h"
PwmOut PWM(PB30);
int main()
{
    PWM.period(0.01);
    PWM=0.5;
}

就简单的两句实现了PWM的功能,我觉得mbed将来大有前途,前提是那USB库及RTOS支持ATMEL的板子。

以下是运行的截图:


下图是编译通过的截图:





相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2399

主题

6963

帖子

68

粉丝