作者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)