05 LinkNode玩呼吸灯
时间:10-02
整理:3721RD
点击:
这个其实就是利用PWM的占空比来控制LED的亮度,对于单片机来说是很普通的功能,但在mbed下会发现更加无法想象的简单。在没有看官方例子前,总觉得该配置点定时器什么的,然后再得到PWM。结果并非如此。因为已经定义了PwmOut这个类了!官方例子是控制蜂鸣器演奏一首歌曲,那我们就改造成呼吸灯吧。不够在pwm的duty-cycle设置中有个小坑,跟大家分享一下。
编程环境,mbed,添加mbed库即可。在库中可以找到pwm类的说明,还是比较简单的。下图所示的方法用用就够了
另外write和read可以简单的用实例=和=实例来完成。废话少说,先来试试这个duty-cycle到底是数字大亮还是数字小亮。既然是百分比,那么肯定在0-1.0之间取值。我们给两盏LED都点上
但是while(1)中,使用这段代码可以。
编程环境,mbed,添加mbed库即可。在库中可以找到pwm类的说明,还是比较简单的。下图所示的方法用用就够了
另外write和read可以简单的用实例=和=实例来完成。废话少说,先来试试这个duty-cycle到底是数字大亮还是数字小亮。既然是百分比,那么肯定在0-1.0之间取值。我们给两盏LED都点上
- #include <mbed.h>
- PwmOut L_red(P0_20);
- PwmOut L_blue(P0_19);
- int main(void){
- L_red=0.1;
- L_blue=0.9;
- while(1){
- }
- }
- #include <mbed.h>
- PwmOut L_blue(P0_19);
- int main(void){
- L_blue=1.0;
- while(1){
- wait(1);
- L_blue=L_blue-0.2;
- if (L_blue==0) {
- L_blue=1.0;
- }
- }
- }
但是while(1)中,使用这段代码可以。
- wait(1);
- L_blue=1.0;
- wait(1);
- L_blue=0.8;
- wait(1);
- L_blue=0.6;
- wait(1);
- L_blue=0.4;
- wait(1);
- L_blue=0.2;
- wait(1);
- L_blue=0.0;
- #include <mbed.h>
- PwmOut L_blue(P0_19);
- int main(void){
- float dc=0.0;
- L_blue=dc;
- L_blue.period_us(10);
- while(1){
- wait(1);
- dc=dc+0.2;
- if (dc>1.1) {
- dc=0.0;
- }
- L_blue=dc;
- }
- }
汇总帖在此:
【linknode评测】—— by johnrey
http://bbs.eeworld.com.cn/forum. ... &fromuid=536508