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