热度 42|||
变 无 止 境
经历前面的四次变形,应该说,跑马灯这棵小树苗,也算根红苗正了。具备了向上继续生长的条件,长歪掉的可能性较低。因此我们可以进一步拓展其功能。
1) 增加一个按键,控制跑马灯的启动和停止。这个时候,有按键抖动滤波、译码和事件传递需要考虑。
2) 增加一个串口通讯,敲入不同的命令,实现不同的动作。如下
命令字符串 | 实现功能 |
left2right | 从左到右闪烁 |
right2left | 从右到左闪烁 |
stop | 停止 |
这个时候,需要考虑串口的字节流如何截止,使变成一串命令。又如何告诉串口的使用者:包接受完成,请取包分析?
3) 灯,只是一个商业系统里面,最最简单的控制,尚且如此讲究。如果加上一些基本的标配:Lcd,蜂鸣器、矩阵扫描按键,系统又该如何构建?
4) 随着系统的日益变大,当main模块while(1)里面代码的运行时间超过LIGHT_INTERVAL_TIME时,跑马灯的间隔控制将会出现较大的时间误差,请问如何避免这个情况。
这些,都是在构建嵌入式系统过程中常会遇到的问题,但对于没有经验的工程师来说,往往会感到阵阵无力与彷徨,难以兼顾系统的稳定性、可维护性和运行效率。
最常见的是:遍地的全局变量交叉混杂、到处的while(1)和看门狗、直入骨髓的if判断陷阱、心力交瘁的依赖关系。
整个系统处于一种“神秘的稳定状态”,
你会敬之畏之,继而离职,下任更快离职,继而瘫痪。
在本书,您可以找到答案。
我的邮箱是:yanfazhisheng@foxmail.com QQ:2737998760
如果您觉得此文有些共鸣,或者有别的疑问,欢迎您联系我,我有空会尽力回复。
书一直没什么动力去写,愧对北航董编,所以我非常渴望鼓励和反馈。
本系列入口:一线研发之声 之 跑马灯变形记(一)
dirtwillfly: 在写书?
wxjcan: 加油 写得不错
Imakey: 新人很期待你的书 ,大大加油
畅游天涯: 好东西,对象我这样的初学者有很大的帮助,很期待
liu252799093: 很不错,做了这么多年,程序也一直处在你的第三次变形中。。看了后,收获不小。谢谢
poorhack: 楼主你的博客对我很有启发,谢谢。出书了请告知。