正文

 一次软件可靠性实践编程笔记 2005-11-19 15:31:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/niao0311/7155.html

分享到:

 一次软件可靠性实践编程笔记

概况

产品的主机与显示器分立,两者之间用多芯线连接,产品到用户安装时才把主机与显示器通过接插件连接。
主机单片机使用AVR,显示为段式LCD,驱动为HT1621兼容芯片。
产品使用过程中,会频繁开关电源。

程序过程

上电è初始化显示器è进入{测试获得数据è显示}循环

改进

产品有几种显示器,LCDLED。最初是不同显示器用不同的固件,后来改成全兼容式,即相同的硬件与相同的固件,可随意匹配不同的显示器。程序自动识别不同类型的显示器,调用不同的过程来进行显示。

改进后的程序过程

上电è识别显示器è初始化显示器è进入{测试获得数据è识别显示器è如果显示发生改变则初始化è显示}循环
其中显示间隔约100ms

问题发现

显示循环中,在不断电的情况下,不断更换显示器进行测试,发现插入不同的LCD时,偶然会出现什么也不显示的现象。如果在接插显示器过程中,人为制造接触不良的过程(最终会插牢),此现象则更甚。但如果是LED类的显示器,或接好显示器后再通电,则几乎没发生此现象。

分析

连接显示器过程,从插入到插牢数据线需要一段时间,当数据线接触瞬间,主机检测到某显示器,于时立即送数据初始化,但初始化时,可能接触不良,初始化不成功,但程序不具备初始化成功与否的检测功能,于是继续下一步,送显示数据给显示器。LCD之类的初始化不成功,当然就不能显示了。

解决方案

(1)    增加初始化成功与否的检测程序,每次初始化后,调用这个过程,如果初始化不成功,则重复初始化。

(2)    识别显示器后,适当延时再初始化显示器。

方案(1)适用于可回读的显示器,(2)适用于不可回读的显示器。
由于本产品的显示器不能回读,采用方案(2)

结果

进行上述的测试,不再发现不显示的现象。

结论

考虑每一个细节,对重要操作进行检测。

阅读(1691) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册