原创 软件实现呼吸灯

2013-4-26 10:35 4136 24 26 分类: MCU/ 嵌入式

呼吸灯是手机上的一个小东西,一个灯由明变暗再由暗变明,象是一个人在呼吸一样。可以用硬件实现这个呼吸灯,但体积会比较大。这里用软件做了一个:


#define BREATHLEVEL 6*256
void BreathLED(void){
  static uint16_t cnt=0,illu=0,rep=0,stt=1;
  rep++;
  cnt++;
  if(cnt > illu) LED2OFF();
  else LED2ON();
  if(rep == BREATHLEVEL){
    rep = 0;
    cnt = 0;
    if(stt){
      illu++;
      if(illu >= BREATHLEVEL){
        stt = 0;
      }
     }
      else{       
      illu--;
      if(illu < 1){
        stt = 1;
      }    
    }  
  }
}

 

把这个函数中的点灯灭灯的宏指向板子上的硬件LED。在定时中断里调用这个函数就能实现呼吸灯。

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1667055 2014-7-17 17:13

不错,而且不影响其他程序执行。 谢谢。

用户1680489 2013-5-1 06:36

早上好!祝大家五一节快乐!幸福!
相关推荐阅读
southcreek 2025-05-07 15:06
二位半 5线数码管的驱动方法
二位半 5线数码管的驱动方法这个2位半的7段数码管只用5个管脚驱动。如果用常规的7段+共阳/阴则需要用10个管脚。如果把每个段看成独立的灯。5个管脚来点亮,任选其中一个作为COM端时,另外4条线可以单...
southcreek 2025-04-03 09:49
电路设计中的口线复用例子
实例1:设置GPIO为输入或输出完成读取状态和驱动LED功能。下面这个电路使用3个gpio 用于读取拔码开关的设置和驱动3个LED流水灯显示。拔码开关在开机时需要读取一次。使用过程中不需要使用。如果单...
southcreek 2025-02-20 13:35
供电开关电路不良引起的MCU程序跑飞及解决办法
这是一个3.3V 的供电开关,给WIFI模块供电。目的是能控制WIFI模块通电或断电。VCC_3V3 是电源,当WLENN为低时,Q1打开输出VCCW 给WIFI模块供电。实际使用时,当控制WLENN...
southcreek 2025-01-22 06:34
设置可执行程序图标
在本文的示例中,图标文件名称为“logo.ico”,该文件位于项目主目录下。2.2 设置标题栏图标通过下列函数设置标题栏图标:setWindowIcon(QIcon("://logo.ico"));1...
southcreek 2024-12-04 16:32
PWM输出隔离DAC设计
这个设计的目标是产生一个隔离的DAC输出。12V供电,产生0~5V的输出。达到10000约13.3位的分辨率。要求DAC输出在改变设置后1S内能稳定。需要能长时间保持稳定和低噪声。能达到要求的DAC只...
southcreek 2024-12-04 15:23
一个基于HAL库的串口控制框架
将串口接收配置为 DMA方式,DMA 使用 DMA_CIRCULAR 模式工作。串口接收的数据实际上构成循环队列。 定义一个结构Comm_typedef 结构体中包含指向接收到的第一字节位置chrc...
我要评论
2
24
关闭 站长推荐上一条 /3 下一条