|
最近做的东西就一个led作为提示,想到一种led的控制方法,很简单的程序可以让led有多种闪烁方式,我也是突然想到的,不一定完美,大家有好的想法也可以一起讨论." a. Z! X; ?, ]$ X 先贴主要源码:' M+ A( O' Z+ f" H- Z% |5 q% e u8 led_state ,led_delay,led_shift;//led闪烁方式,led闪烁最小时间,移位变量( I7 w) x; _' P6 o% u* o 以下程序在定时器中断或者知道主函数循环一圈的时间里执行; static led_count=0; irq(){ if(led_delay<=led_count++) //到时间0 a$ Y, G, \# n9 j# h { led_count=0;0 H2 Y5 K- A7 q- k' u- t, y led1 = (led_state>>led_shift)&1;3 ^7 ~. I N/ {: q3 n' f' ` if(8==(led_shift++))% j+ i7 b; Q: b2 C, [& R {: K- n5 ~" K2 V4 O0 T: n; Q led_shift = 0;7 o6 [- C. F1 K) j1 Y) D }* J5 r5 N: r F5 _$ I: h }% P7 a( q" u8 E1 J4 ~* @ } 思路: 执行一次这段函数是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能改闪烁时间,就是这样,欢迎大家提出想法一起讨论。 一个字节的 |
微信公众号
手机版
2 ~7 S& Z- J* R; c& G; c- Z+ n
X5 u- S0 n3 O, l, H8 {