看板 ASM 關於我們 聯絡資訊
最近用 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)
cwl751005:主程式基本上是沒甚麼問題,可能原因就在LCD程式裡 01/22 14:13
WolfLord:LCM的不穩通常都出自於讀寫訊號的誤解 01/22 14:56
這是我用的LCD讀寫函式 http://paste.ideaslabs.com/show/vRgZ6LKYoD ※ 編輯: deo2000 來自: 140.122.165.222 (01/22 15:51)
cwl751005:應該先將E、RS、RW設完後將資料搬到LCDP,接著做delay 01/22 17:44
cwl751005:再將E及RW設回來 01/22 17:45
cwl751005:你的寫入指令函數在把資料丟出去後就接著E=0,LCD沒那麼 01/22 17:51
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)