|
最近做的东西就一个led作为提示,想到一种led的控制方法,很简单的程序可以让led有多种闪烁方式,我也是突然想到的,不一定完美,大家有好的想法也可以一起讨论. 先贴主要源码: u8 led_state ,led_delay,led_shift;//led闪烁方式,led闪烁最小时间,移位变量 以下程序在定时器中断或者知道主函数循环一圈的时间里执行;! s9 g" _0 X' J# Q0 } static led_count=0; irq(){ if(led_delay<=led_count++) //到时间) g# H* D- v8 w0 m& a- N {' D( {: \ b* p& ?9 J2 t7 N" V- d# u1 _ led_count=0; led1 = (led_state>>led_shift)&1;. I/ ^% f8 h& ` if(8==(led_shift++))8 r3 a% \6 j- I1 q { led_shift = 0; } }# w) I, X3 K7 g( c }% I% e0 {% m& ?. T& h 思路: 执行一次这段函数是1ms;设置led_delay=100ms;led_count加100次if内的执行一次,- e, D& P7 a0 G led_state是led闪烁状态,没位1是亮,0是不亮,0xf0是亮灭个400ms,0x01是灭700量100,0xaa是两100灭100,就是100ms判断一次led_shift位上是1还是0,通过改变led_state能改变闪烁方式,改变led_delay能改闪烁时间,就是这样,欢迎大家提出想法一起讨论。 一个字节的 |
微信公众号
手机版
- B f% p v; o4 s' Y$ ?3 W5 `4 _