如何写一个状态指示灯?( 二 )


代码注释比较详尽,如果看不懂,说明还没有理解鱼鹰以前写的笔记,建议翻翻以前的鱼鹰笔记 。
简单说明几点:
1、为了移植方便,使用了一个函数指针设置LED电平,因此可以很方便的修改 。
2、可以方便配置多个LED,如果一个LED不够,那就俩 。
3、为了减少空间的使用,原本 4 字节的时间戳通过强制转化,使用 2 字节即可实现 。
4、单次超时时间实现 。
5、时间戳单位为 1 毫秒,同时函数为了保证时间精度,调用周期为 10 ms,该函数需要周期性调用,并且只可以在一个地方调用(一个LED情况下) 。
6、 函数用于更新闪烁次数,可在闪烁次数变化的时候调用;同时可多线程使用,当然因为没有缓存,始终保存最后一次调用时的显示次数 。
7、led 作为共享资源,使用变量控制资源访问,保证指示不会出现混乱 。
8、指示更新周期1.5秒,即上层即使更新了,最迟需要 1.5 后才会更新,最早更新时间为立刻 。
9、使用 C99 的特性,简化初始化过程 。
这个功能很简单,但是里面涉及到知识点很多,建议多理解,如果不理解,可在鱼鹰技术交流群交流 。
【如何写一个状态指示灯?】你,学会了吗?