本帖最后由 雷柏 于 2014-12-27 08:29 编辑
本帖转自:http://bbs.21ic.com
变 无 止 境 经历前面的四次变形,应该说,跑马灯这棵小树苗,也算根红苗正了。具备了向上继续生长的条件,长歪掉的可能性较低。因此我们可以进一步拓展其功能。 1) 增加一个按键,控制跑马灯的启动和停止。这个时候,有按键抖动滤波、译码和事件传递需要考虑。 2) 增加一个串口通讯,敲入不同的命令,实现不同的动作。如下
命令字符串 | 实现功能 | left2right | 从左到右闪烁 | right2left | 从右到左闪烁 | stop | 停止 |
这个时候,需要考虑串口的字节流如何截止,使变成一串命令。又如何告诉串口的使用者:包接受完成,请取包分析? 3) 灯,只是一个商业系统里面,最最简单的控制,尚且如此讲究。如果加上一些基本的标配:Lcd,蜂鸣器、矩阵扫描按键,系统又该如何构建? 4) 随着系统的日益变大,当main模块while(1)里面代码的运行时间超过LIGHT_INTERVAL_TIME时,跑马灯的间隔控制将会出现较大的时间误差,请问如何避免这个情况。 这些,都是在构建嵌入式系统过程中常会遇到的问题,但对于没有经验的工程师来说,往往会感到阵阵无力与彷徨,难以兼顾系统的稳定性、可维护性和运行效率。 最常见的是:遍地的全局变量交叉混杂、到处的while(1)和看门狗、直入骨髓的if判断陷阱、心力交瘁的依赖关系。 整个系统处于一种“神秘的稳定状态”, 你会敬之畏之,继而离职,下任更快离职,继而瘫痪。 |