
最近做的东西就一个led作为提示,想到一种led的控制方法,很简单的程序可以让led有多种闪烁方式,我也是突然想到的,不一定完美,大家有好的想法也可以一起讨论. 先贴主要源码: u8 led_state ,led_delay,led_shift;//led闪烁方式,led闪烁最小时间,移位变量 以下程序在定时器中断或者知道主函数循环一圈的时间里执行; static led_count=0; irq(){ if(led_delay<=led_count++) //到时间 { led_count=0; led1 = (led_state>>led_shift)&1; if(8==(led_shift++)) { led_shift = 0; } } } 思路: 执行一次这段函数是1ms;设置led_delay=100ms;led_count加100次if内的执行一次, led_state是led闪烁状态,没位1是亮,0是不亮,0xf0是亮灭个400ms,0x01是灭700量100,0xaa是两100灭100,就是100ms判断一次led_shift位上是1还是0,通过改变led_state能改变闪烁方式,改变led_delay能改闪烁时间,就是这样,欢迎大家提出想法一起讨论。 一个字节的 |
好主意 |
也可以使用结构体管理LED,只不过内存暂用要大不少 |
好厉害~![]() |
感谢楼主分享 |
学习了 |
感谢楼主分享。 |
可以啊!! |
好主意! |
很厉害的样子 |
谢谢 分享!!!!!! |
谢楼主分享 |
感谢楼主分享 |
很好,我会测试下 |
可以啊,强烈支持楼主ing…… |