查看: 7839|回复: 27

[分享] 【YL-KL26Z试用】+ MBED下的记事本调试

[复制链接]
  • TA的每日心情
    奋斗
    2017-5-3 11:19
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    50

    主题

    1万

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    14090
    最后登录
    2024-4-19
    发表于 2015-5-23 10:12:58 | 显示全部楼层 |阅读模式
    首选感谢小七和社区,收到这块板子,研究了几天。和大家分享一下。这块板子和KL25Z差不多,所以可以在mbed下选择KL25Z模块使用了。

    今天我们要使用这块板子,在mbed下使用RTOS做一个呼吸灯和使用ADC输入来控制一人LED灯的亮度,最后把ADC的输入值在 “串口”中打印出来,由于串口的一些特殊性,所以这里我换了windows记事本,没错就是在windows自带的记事本中输出调试信息。
    电路:
    adc.jpg led.png
    实现思路:
    RTOS下两个线程,利用PWM控制LED0,LED1,主函数里采集ADC的值。
    实现代码:
    话不多说,代码做了详细的注释,大家看吧。
    1. #include "mbed.h"
    2. #include "rtos.h"
    3. #include "USBKeyboard.h"

    4. //led线程信号
    5. #define LEDSIGNAL   0x55

    6. AnalogIn sw(PTE20);
    7. PwmOut   led0(PTB18);
    8. PwmOut   led1(PTB19);
    9. USBKeyboard key;

    10. int swValue,swOldValue;

    11. //led0工作线程,呼吸灯效果
    12. void led0Work(void const *argumnt)
    13. {
    14.     int i;
    15.     while(true)
    16.     {
    17.         for(i=0;i<=1000;i+=10)
    18.         {
    19.             //设置PWM脉宽
    20.             led0.pulsewidth_us(i);
    21.             //等待2ms
    22.             Thread::wait(2);
    23.         }
    24.         Thread::wait(500);
    25.         for(i=1000;i>0;i-=10)
    26.         {
    27.             led0.pulsewidth_us(i);
    28.             Thread::wait(2);
    29.         }
    30.     }
    31. }
    32. //led1工作线程
    33. void led1Work(void const* argumnt)
    34. {
    35.     while(true)
    36.     {
    37.         //等待信号触发
    38.         Thread::signal_wait(LEDSIGNAL);
    39.         int orgVal = *(int*)argumnt;
    40.         int pVal = orgVal / 65500.0 * 1000;;
    41.         //退格输出
    42.         key.printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
    43.         key.printf("Led Value:%5d",orgVal);
    44.         //设置新的脉宽
    45.         led1.pulsewidth_us(pVal);
    46.         swOldValue = orgVal;
    47.     }
    48. }


    49. int main()
    50. {
    51.     //设置PWM周期
    52.     led0.period_us(1000);
    53.     led1.period_us(1000);
    54.    
    55.     Thread t1(led0Work);
    56.     Thread t2(led1Work,&swValue);
    57.    
    58.     while(1)
    59.     {
    60.         swValue = sw.read_u16();
    61.         //消除抖动
    62.         if(abs(swOldValue - swValue)>65)
    63.             t2.signal_set(LEDSIGNAL);
    64.         wait(0.01);
    65.     }
    66. }
    复制代码

    实验视频:


    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-3 11:19
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    50

    主题

    1万

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    14090
    最后登录
    2024-4-19
     楼主| 发表于 2015-5-23 10:16:55 | 显示全部楼层
    国际惯例:沙发自己做。 nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-10 16:14
  • 签到天数: 1442 天

    连续签到: 1 天

    [LV.10]以坛为家III

    17

    主题

    3862

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    8291
    最后登录
    2021-12-10
    发表于 2015-5-23 10:59:58 | 显示全部楼层
    不错,顶一个
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
    发表于 2015-5-23 12:18:59 | 显示全部楼层
    谢谢分享,欣赏下
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-4 08:26
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    24

    主题

    291

    帖子

    0

    高级会员

    Rank: 4

    积分
    614
    最后登录
    2020-11-21
    发表于 2015-5-23 12:44:36 | 显示全部楼层
    为了新办卡 我也开始回帖子了加油中
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    1005

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2040
    最后登录
    2017-6-26
    发表于 2015-5-23 21:09:08 | 显示全部楼层
    思路不错,很值得 学习。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1001

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2013
    最后登录
    2017-6-26
    发表于 2015-5-23 21:11:33 | 显示全部楼层
    楼主代码写的规范,学习知道了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1002

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2014
    最后登录
    2016-10-14
    发表于 2015-5-23 21:17:47 | 显示全部楼层
    谢谢分享。。。消除抖动是做什么用的?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16714
    最后登录
    1970-1-1
    发表于 2015-5-24 00:28:48 | 显示全部楼层
    前来学习的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-3 11:19
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    50

    主题

    1万

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    14090
    最后登录
    2024-4-19
     楼主| 发表于 2015-5-24 09:30:31 | 显示全部楼层
    lvjunke 发表于 2015-5-23 21:17
    谢谢分享。。。消除抖动是做什么用的?

    因为ADC太灵敏了,所在要在一定范围进行消抖
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-28 01:44 , Processed in 0.106506 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表