作者deo2000 (800IM)
看板ASM
标题[问题] LCD 当机率过高,喂狗(WDT)改善有限
时间Tue Jan 22 10:48:17 2013
最近用 16*2的 LCD 练习 LCD 控制
整个程式很简单
初始化
while(1)
{ 清除
秀第一行(字串1)
秀第二行(字串2)
delay();
清除
秀第一行(字串3)
秀第二行(字串4)
delay();
}
这是我写过当机率最高的程式了,很容易就可以看到
1.显示乱字
2.停滞
写入资料(LCD Enable负缘)的前後都有检查忙碌旗标,所以应该不会有给LCD太少时间的问题,
使用WDT之後,停滞的现象有改善,
不过还是经常出现乱字,
请问可能是LCD function写得不好吗? 还是LCD硬体本身不够好呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.122.165.222
※ 编辑: deo2000 来自: 140.122.165.222 (01/22 10:48)
1F:推 cwl751005:主程式基本上是没甚麽问题,可能原因就在LCD程式里 01/22 14:13
2F:推 WolfLord:LCM的不稳通常都出自於读写讯号的误解 01/22 14:56
这是我用的LCD读写函式
http://paste.ideaslabs.com/show/vRgZ6LKYoD
※ 编辑: deo2000 来自: 140.122.165.222 (01/22 15:51)
3F:推 cwl751005:应该先将E、RS、RW设完後将资料搬到LCDP,接着做delay 01/22 17:44
4F:→ cwl751005:再将E及RW设回来 01/22 17:45
5F:→ cwl751005:你的写入指令函数在把资料丢出去後就接着E=0,LCD没那麽 01/22 17:51
6F:→ cwl751005:快,至少延迟个50~70uS 01/22 17:51
LCD不是从Enable的负缘开始,读入资料吗?
还是说,负缘期间LCD尚未反应过来?
※ 编辑: deo2000 来自: 140.122.165.222 (01/22 18:20)
感谢cwl751005,照做後改善不少
※ 编辑: deo2000 来自: 140.122.165.222 (01/22 19:10)