AVR , LCD 44780 bit zajętości problem (długie)
Masz problem? Zapytaj na forum elektroda.pl
From: "raF" <jurij_at_nospam_poczta.onet.pl>
Subject: AVR , LCD 44780 bit zajętości problem (długie)
Date: 2 Dec 2005 08:36:54 +0100
Witam
Mam problem z odczytem bitu zajętności w wyswietlaczu na sterowniku HD44780. Gdy
nie kożystam z tej funkcji (odpowiednie czasy opiznien) to wsyztsko dziala...
ale chyba za wolno. Podczas pisania na ekranie widac ze literki pojawiaja sie z
lewej do prawej, a nie ze pojawiaja sie jednoczesnie na ekranie. Stosuje
opoznienie 1 ms przed zapisem kolejnej litery do pamieci ram wyswietlacza. Wiem
ze to duzo, ale reszte programu mam dopasowana wlasnie do tego czasu, wiec chyba
sprawdzanie bitu zajetosci bylo by dobrym rozwiazaniem.
A obie to tak (dla avar)
(poprzednio port D w stan wyjsciowy ddrd=0b11111111)
cbic portd,4 ; zeruje linie DB4 wyswietlacza (1)
cbic portd,5 ; zeruje linie DB6 wyswietlacza (2)
cbic portd,6 ; zeruje linie DB6 wyswietlacza (3)
cbic portd,7 ; zeruje linie DB7 wyswietlacza (4)
nop
nop
nop
cbi ddrd,7 ; pin 7 podtu D jako wejscie (5)
sbi portd,7 ; wlaczenie rezystora podciagającego (6)
nop
nop
nop
cbic portd,rs ; pin RS wyswietlacza w stan niski (7)
sbic portd,rw ; pin RW w stan wysoki (8)
nop
nop
nop
wait1: sbic pind,7 ; (9)
rjmp wait1 ; (10)
nop
nop
wait2: sbic pind,7 ; (11)
jrmp wait2 ; (12)
Niestety to mi nie dziala. Na lini DB7 po wykonaniu "chyba" instrukcji (7) mam
caly czas stan wysoki. Jakim cudem???? P.S. To "chyba" dlatego ze wczoraj o 2 w
nocy już mi sie literki przed oczami mieniły :)
Prosze o jakies sugestie
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
From: "Bogdan Gutknecht" <b_gutknecht_at_nospam_interia.pl>
Subject: =?iso-8859-2?Q?Re:_AVR_=2C_LCD_44780_bit_zaj=EAto=B6ci_problem_=28d=B3u?=
Date: Fri, 2 Dec 2005 09:00:54 +0100
Użytkownik "raF" <jurij_at_nospam_poczta.onet.pl> napisał w wiadomości
news:41ef.000008fe.438ff995_at_nospam_newsgate.onet.pl...
Witam
Mam problem z odczytem bitu zajętności w wyswietlaczu na sterowniku
HD44780. Gdy
nie kożystam z tej funkcji (odpowiednie czasy opiznien) to wsyztsko
dziala...
ale chyba za wolno. Podczas pisania na ekranie widac ze literki pojawiaja
sie z
lewej do prawej, a nie ze pojawiaja sie jednoczesnie na ekranie. Stosuje
opoznienie 1 ms przed zapisem kolejnej litery do pamieci ram wyswietlacza.
Wiem
ze to duzo, ale reszte programu mam dopasowana wlasnie do tego czasu, wiec
chyba
sprawdzanie bitu zajetosci bylo by dobrym rozwiazaniem.
A obie to tak (dla avar)
(poprzednio port D w stan wyjsciowy ddrd=0b11111111)
cbic portd,4 ; zeruje linie DB4 wyswietlacza (1)
cbic portd,5 ; zeruje linie DB6 wyswietlacza (2)
cbic portd,6 ; zeruje linie DB6 wyswietlacza (3)
cbic portd,7 ; zeruje linie DB7 wyswietlacza (4)
nop
nop
nop
cbi ddrd,7 ; pin 7 podtu D jako wejscie (5)
sbi portd,7 ; wlaczenie rezystora podciagającego (6)
nop
nop
nop
cbic portd,rs ; pin RS wyswietlacza w stan niski (7)
sbic portd,rw ; pin RW w stan wysoki (8)
nop
nop
nop
wait1: sbic pind,7 ; (9)
rjmp wait1 ; (10)
nop
nop
wait2: sbic pind,7 ; (11)
jrmp wait2 ; (12)
Niestety to mi nie dziala. Na lini DB7 po wykonaniu "chyba" instrukcji (7)
mam
caly czas stan wysoki. Jakim cudem???? P.S. To "chyba" dlatego ze wczoraj
o 2 w
nocy już mi sie literki przed oczami mieniły :)
Prosze o jakies sugestie
Co ma robić cbic? Do zerowania bitu jest cbi, do ustawiania sbi, do
przeskoku warunkowego sbic. Dlatego nie rozumiem instrukcji (1)-(4) i
właśnie (7) oraz (8).
From: jurij_at_nospam_poczta.onet.pl
Subject: Re: AVR , LCD 44780 bit zajętości problem (długie)
Date: 2 Dec 2005 09:06:12 +0100
Poprawiony kod (pisałem go z pamięci i sie wkradły błędy)
(poprzednio port D w stan wyjsciowy ddrd=0b11111111)
cbi portd,4 ; zeruje linie DB4 wyswietlacza (1)
cbi portd,5 ; zeruje linie DB6 wyswietlacza (2)
cbi portd,6 ; zeruje linie DB6 wyswietlacza (3)
cbi portd,7 ; zeruje linie DB7 wyswietlacza (4)
nop
nop
nop
cbi ddrd,7 ; pin 7 podtu D jako wejscie (5)
sbi portd,7 ; wlaczenie rezystora podciagającego (6)
nop
nop
nop
cbi portd,rs ; pin RS wyswietlacza w stan niski (7)
sbi portd,rw ; pin RW w stan wysoki (8)
nop
nop
nop
wait1: sbic pind,7 ; (9)
rjmp wait1 ; (10)
nop
nop
wait2: sbic pind,7 ; (11)
jrmp wait2 ; (12)
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
From: jurij_at_nospam_poczta.onet.pl
Subject: Re: AVR , LCD 44780 bit zajętości problem (długie)
Date: 2 Dec 2005 09:43:24 +0100
Ok, juz teoretycznie znalazlem błąd (a właściwie ktoś mi w tym pomógł). Nie
zatrzaskuje tej komendy (RS=0, RW=1) sygnałem E.
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
From: AlexY <alexy_at_nospam_irc.-cut_this-.pl>
Subject: Re: AVR , LCD 44780 bit =?ISO-8859-2?Q?zaj=EAto=B6ci_problem_?=
Date: Fri, 02 Dec 2005 18:43:19 +0100
Użytkownik jurij_at_nospam_poczta.onet.pl napisał:
Ok, juz teoretycznie znalazlem błąd (a właściwie ktoś mi w tym pomógł). Nie
zatrzaskuje tej komendy (RS=0, RW=1) sygnałem E.
Daj znac czy po poprawce dziala.
Kiedys chcialem tego lcd sterowac "czysto" i szybko, nie wyszlo, za
pierwszym sprawdzeniem flagi gotowosci mialem gotowosc i kasze na
wyswietlaczu, odpuscilem i zrobilem stale czasy, ale nie takie koszmarne
jak u Ciebie :) tylko tyle ile HD wymagal :)
--
AlexY
http://yisse.neostrada.pl/spam.txt
http://ldhp715.immt.pwr.wroc.pl/~sapi/sieci/netykieta/
From: jurijWYTNIJTO_at_nospam_poczta.onet.pl
Subject: Re: AVR , LCD 44780 bit zajętości problem (długie)
Date: 7 Dec 2005 11:31:43 +0100
Użytkownik jurij_at_nospam_poczta.onet.pl napisał:
Ok, juz teoretycznie znalazlem błąd (a właściwie ktoś mi w tym pomógł). Nie
zatrzaskuje tej komendy (RS=0, RW=1) sygnałem E.
Daj znac czy po poprawce dziala.
Kiedys chcialem tego lcd sterowac "czysto" i szybko, nie wyszlo, za
pierwszym sprawdzeniem flagi gotowosci mialem gotowosc i kasze na
wyswietlaczu, odpuscilem i zrobilem stale czasy, ale nie takie koszmarne
jak u Ciebie :) tylko tyle ile HD wymagal :)
--
> AlexY
> http://yisse.neostrada.pl/spam.txt
> http://ldhp715.immt.pwr.wroc.pl/~sapi/sieci/netykieta/
Witam
Niestety porażka. Nie potrafie sprawdzić tego bitu zajętości. Wprowadzilem pustą
pętlę trwającą ok 100 cykli zegarowych przy kwarcu 11059200Hz i działa. Chyba
sobie ten bit zajętości podaruje. Przy 80 cyklach gubiły mi sie niektóre znaki
na wyświetlaczu, przy 90 było już OK, wiec dla zapasu dałem 100.
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
From: jurij_at_nospam_poczta.onet.pl
Subject: Re: AVR , LCD 44780 bit zajętości problem (długie)
Date: 7 Dec 2005 11:31:47 +0100
Użytkownik jurij_at_nospam_poczta.onet.pl napisał:
Ok, juz teoretycznie znalazlem błąd (a właściwie ktoś mi w tym pomógł). Nie
zatrzaskuje tej komendy (RS=0, RW=1) sygnałem E.
Daj znac czy po poprawce dziala.
Kiedys chcialem tego lcd sterowac "czysto" i szybko, nie wyszlo, za
pierwszym sprawdzeniem flagi gotowosci mialem gotowosc i kasze na
wyswietlaczu, odpuscilem i zrobilem stale czasy, ale nie takie koszmarne
jak u Ciebie :) tylko tyle ile HD wymagal :)
--
> AlexY
> http://yisse.neostrada.pl/spam.txt
> http://ldhp715.immt.pwr.wroc.pl/~sapi/sieci/netykieta/
Witam
Niestety porażka. Nie potrafie sprawdzić tego bitu zajętości. Wprowadzilem pustą
pętlę trwającą ok 100 cykli zegarowych przy kwarcu 11059200Hz i działa. Chyba
sobie ten bit zajętości podaruje. Przy 80 cyklach gubiły mi sie niektóre znaki
na wyświetlaczu, przy 90 było już OK, wiec dla zapasu dałem 100.
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
From: AlexY <alexy_at_nospam_irc.-cut_this-.pl>
Subject: Re: AVR , LCD 44780 bit =?ISO-8859-2?Q?zaj=EAto=B6ci_problem_?=
Date: Thu, 08 Dec 2005 12:36:22 +0100
Użytkownik jurij_at_nospam_poczta.onet.pl napisał:
Niestety porażka. Nie potrafie sprawdzić tego bitu zajętości. Wprowadzilem pustą
pętlę trwającą ok 100 cykli zegarowych przy kwarcu 11059200Hz i działa. Chyba
sobie ten bit zajętości podaruje. Przy 80 cyklach gubiły mi sie niektóre znaki
na wyświetlaczu, przy 90 było już OK, wiec dla zapasu dałem 100.
zainteresuj sie http://web.media.mit.edu/~ayah/documents/hd44780u.pdf
jest tam tabela nr.6 w ktorej podane sa czasy wykonywania poszczegolnych
operacji, pomoze Ci to zoptymalizowac szybkosc
--
AlexY
http://yisse.neostrada.pl/spam.txt
http://ldhp715.immt.pwr.wroc.pl/~sapi/sieci/netykieta/