[Cortex-M0技术交流] 【第三期】三生石的M0学习笔记第3贴--PWM_LED

[复制链接]
 楼主| kyzb001 发表于 2011-10-20 01:16 | 显示全部楼层 |阅读模式
本帖最后由 kyzb001 于 2011-10-20 01:19 编辑

PWM_LED调节亮度。简单的一个小程序....

先描述一下、 需要的结果:在一定时间内 LED等从亮逐渐灭,在冲灭逐渐到亮。

思路,PWM控制,控制占空比。 

解决步骤: 
第一步:先些一个频率合适的方波脉冲。 调整合适的占空比使得LED灯达到人眼能看到的最暗效果。
第二步:调节高脉冲时间,(注意频率不能变化)
第三步:调节整个亮灭的总时间。

基本的实现的代码如下
  1. #define  LED_WHILE_TIME  2000          
  2. //调节亮灭时间基准  总时间等于LED_WHILE_TIME*LED_FS_TIME/定时器uTicksPerSecond                                                                                                                                                                                  //(打开定时器时候设置的)
  3. #define  LED_FS_TIME         150           //调节脉宽的
  4. #define  LED_START_TIME  10                  
  5. //起始,因为LED从0~x 有一段时间的电压是点不亮LED的。
  6. void TMR_Callback(uint32_t age)
  7. {
  8.         time_ms++;
  9.         time_200ms++;
  10.         if(time_ms<LED_FS_TIME-u32Count)
  11.                 DrvGPIO_SetBit(E_GPA,2);
  12.         else
  13.                 DrvGPIO_ClrBit(E_GPA,2);
  14.         if(time_200ms==LED_WHILE_TIME)
  15.         {
  16.                 time_200ms=0;
  17.                 if(ledflage)
  18.                 {
  19.                         u32Count++;
  20.                         if(u32Count>=LED_FS_TIME)         
  21.                                 ledflage=0;
  22.                 }
  23.                 else
  24.                 {               
  25.                         u32Count--;
  26.                         if(u32Count<=LED_START_TIME)
  27.                                 ledflage=1;       
  28.                 }
  29.         }
  30.         if(time_ms>100)
  31.                 time_ms=0;
  32. }


这个是在定时器中做的1ms的频率。 我分成了140份。 在通过定时器在设定的时间到时修改占空比。从而达到效果。
整体思路如此。 比较简单
完整工程如下:

困死了,睡觉去!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| kyzb001 发表于 2011-10-20 01:20 | 显示全部楼层
国际惯例,自己占沙发,占晚睡觉去!
lixiaoxu2meng 发表于 2011-10-20 08:14 | 显示全部楼层
楼主睡的真晚啊
 楼主| kyzb001 发表于 2011-10-20 08:27 | 显示全部楼层
楼主睡的真晚啊lixiaoxu2meng 发表于 2011-10-20 08:14
昨天弄玩m3在调的。困死咯!现在还在地铁上呢。
qwergnf 发表于 2011-10-21 17:49 | 显示全部楼层
hao   hao
 楼主| kyzb001 发表于 2011-10-23 20:26 | 显示全部楼层
206022219002 发表于 2011-11-9 16:06 | 显示全部楼层
逛逛,下载睇睇
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:Is this my life

15

主题

624

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部