打印

如何用单片机控制多个led以不同频率闪烁

[复制链接]
392|9
跳转到指定楼层
楼主
 楼主 | 2019-11-28 14:54 | 只看该作者 |退出气泡模式 回帖奖励 |倒序浏览 |阅读模式
while循环里用这种结构怎么控制多个led灯呢
        led(LED0, LED_ON);                  //LED0 亮
        DELAY_MS(1000);                      //延时500ms
        led(LED0, LED_OFF);                 //LED0 灭
        DELAY_MS(1000);
        

使用特权

评论回复
沙发
 楼主 | 2019-11-28 15:10 | 只看该作者
以及,led翻转是什么意思啊

使用特权

评论回复

评论

dirtwillfly 2019-11-29 08:29 回复TA
翻转就是改变灯的状态,开变关,或者关变开,都叫翻转 
板凳
| 2019-11-28 15:34 | 只看该作者
jfy000826 发表于 2019-11-28 15:10
以及,led翻转是什么意思啊
  1. switch(state)
  2. {
  3. case 0:
  4.         led(LED0,LED_ON)
  5.         state=1;
  6.         break;
  7. case 1:
  8.         if(++delay_acc>ON_TIME)
  9.         {
  10.                 state=2;
  11.                 delay_acc=0;
  12.         }
  13.         break;
  14. case 2:
  15.         led(LED0,LED_OFF)
  16.         state=3;
  17.         break;
  18. case 3:
  19.         if(++delay_acc>OFF_TIME)
  20.         {
  21.                 state=0;
  22.                 delay_acc=0;
  23.         }
  24.         break;
  25. default:
  26.         break;
  27. }
复制代码
写成状态机的形式就可以了。

使用特权

评论回复
地板
| 2019-11-28 15:43 | 只看该作者
这程序写的????
led(LED0, LED_ON);就一个LED开关还弄个函数,还加LED序号,还加LED开关。
不知道函数的具体内容,多个直接在这个函数做,都不敢给你说什么。
一般IO,基本上可以位操作,直接用宏定义,实现LED亮灭就可以了嘛。
类似的
#define   LED_0_OFF  P0.1=0
#define   LED_0_ON   P0.1=1

循环里面直接这样用
LED_0_OFF;
LED_0_ON;

至于控制多个,而且不同频率,则一般需要采用中断,做起来比较准确,比如一个频率0.5Hz,一个是0.3Hz,则设置一个定时中断,100mS的,一个中断计数到3,翻转LED,一个在中断计数到5,翻转LED??悸堑阶刺荒芑炻?,最后中断计数进位归零值,必须是2个周期计数的公倍数*2。也就是说,中断计数到者30或者60.....清零

使用特权

评论回复
5
| 2019-11-28 17:35 | 只看该作者
楼楼写出来了嘛

使用特权

评论回复
6
| 2019-11-29 09:45 | 只看该作者
学习

使用特权

评论回复
7
| 2019-11-29 12:50 | 只看该作者
在STM32中,可以用滴答定时器做为时标,写个LED驱动函数调用

使用特权

评论回复
8
| 2019-12-2 10:52 | 只看该作者
1.延时——最笨的办法,也是最简单的办法,顺序执行考虑时间。要是灯多时间长,就上SWITCH语句。
2.定时器中断+多标志位。

使用特权

评论回复
9
| 2019-12-11 20:03 | 只看该作者
一个定时器解决

使用特权

评论回复
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /5 下一条

在线客服 快速回复 返回顶部 返回列表
快3注册邀请码tt 太康县| 格尔木市| 靖江市| 清徐县| 即墨市| 治多县| 克东县| 巩义市| 石渠县| 库车县| 霍林郭勒市| 进贤县| 东平县| 常山县| 盐山县| 洛南县| 石棉县| 宜丰县| 金昌市| 米脂县| 连江县| 旬邑县| 麻江县| 金坛市| 香格里拉县| 资溪县| 监利县| 轮台县| 牙克石市| 苍梧县| 高碑店市| 曲沃县| 扶沟县| 海城市| 奇台县| 大竹县| 花垣县| 开化县| 绵阳市| 定远县| 台中县|