Problem s LCD

Jan Kral kral@fortech.cz
Sobota Listopad 5 21:10:56 CET 2005


Zkuste mrknout na tohle: http://www.cmail.cz/doveda/lcd/
Myslim, ze se jedna o nastaveni kombinace, pri ktere display vraci zda je BUSY, a to vraci presne v 7. bitu. Ono bude spis dulezite, zda nemate mezi branou a LCD treba odpor, protoze pak nemusi byt LCD schopno "pretlacit" jednicku na portu nastavenou do 0. Myslim, ze pred testovanim BUSY jeste chybi nastaveni 7. bitu do 1, proto se vam muze zdat ze to obcas funguje.

JK

> Narazil jsem na "zajimavy" problem s LCD displejem. K jeho obsluze  
> pouzivam funkce z CodeVisionAVRv C. Pri simulaci v AVR studiu 
> se mi ale  
> program docela casto zacyklil. Nakonec jsem prisel na to, ze 
> funkce na  
> cekani na zapis vypada takto:
> #asm
>      .equ __lcd_direction=__lcd_port-1
>      .equ __lcd_pin=__lcd_port-2
>      .equ __lcd_rs=0
>      .equ __lcd_rd=1
>      .equ __lcd_enable=2
>      .equ __lcd_busy_flag=7
> #endasm
> 
> __lcd_busy:
>      rcall __lcd_delay
>      sbi   __lcd_port,__lcd_enable ;EN=1
>      rcall __lcd_delay
>      sbic  __lcd_pin,__lcd_busy_flag
>      rjmp  __lcd_busy
>      cbi   __lcd_port,__lcd_enable ;EN=0
> 
> Ale pritom brány 4-7 jsou a maji byt vyuzity pro posilani dat do  
> displeje.To znamena, ze pokud poslu do displeje jakakoli data, ktera  
> nastavi bit 7 na 1 (napr znak "o" a spousta dalsich) dojde k 
> zacykleni,  
> prouoze je nasteven "busy_flag". Jak mam toto osetrit? 
> Napadlo mejednoduse  
> to testovani vypustit, ale potom asi nebude dodrzeno spravne 
> casovani....  
> Jaky bit mam tedy testovat?
> Prosim o radu a zaroven dekuji.
> Radim Horinek



Další informace o konferenci Hw-list