RTV forum PL | NewsGroups PL

Problemy z procedurą LCDwait w C podczas pracy z wyświetlaczem HD44780 na DS89C450

HD44780 implementacja w C

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Problemy z procedurą LCDwait w C podczas pracy z wyświetlaczem HD44780 na DS89C450

Pawel
Guest

Sun Sep 17, 2006 5:00 pm   



Witam,

probuje uruchomic wyswietlacz LCD na moim DS89C450. Mam przykladowy kod
w asm, ktory dziala bez problemu (wiec od strony sprzetowej wszystko
jest OK). Problemy zaczynaja sie kiedy probuje zrobic cokolwiek w C.

Napisalem procedure, ktora czeka az DB7 zmieni sie na 0 (czyli sterownik
zakonczy przetwarzac dane wewnetrzne).

#define RS P3_2
#define RW P3_3
#define BSY P2_7

void LCDwait()
{
RS=0;
RW=1;
while (BSY);
RW=0;
}

Niestety, wydaje mi sie ze ona nie dziala. Ktos moze mi pomoc roziazac
ten problem?

Pozdrawiam,
Pawel

Józek Swinio
Guest

Sun Sep 17, 2006 5:44 pm   



Napisalem procedure, ktora czeka az DB7 zmieni sie na 0 (czyli sterownik
Quote:
zakonczy przetwarzac dane wewnetrzne).
-----------------------------------------------------------------

Witam:
Procedura, którą napisałem kiedyś na 80C51 - mam nadzieję, że zadziała:)

-----------------------------------------------------------------
LCD - port wyświetlacza, transmisja 2 x 4 bity
D7, D6, D5, D4, E, RW, RS, x
D7 - msb
x - not connected
-----------------------------------------------------------------

unsigned char lcd_addr;

void bussy_check(void) // bussy check and read counter address
{
RW=1;
RS=0;
LCD|=0xF0;

do {
E=1;
lcd_addr=LCD&0xF0;
E=0;
E=1;
lcd_addr|=LCD>>4;
E=0;
} while (lcd_addr&0x80);

RW=0;

}

Marcin Bawolski
Guest

Sun Sep 17, 2006 8:26 pm   



Użytkownik "Pawel" <student833@gazeta.pl> napisał w wiadomości
news:eejv0n$ad3$1@inews.gazeta.pl...
Quote:
Witam,

probuje uruchomic wyswietlacz LCD na moim DS89C450. Mam przykladowy kod w
asm, ktory dziala bez problemu (wiec od strony sprzetowej wszystko jest
OK). Problemy zaczynaja sie kiedy probuje zrobic cokolwiek w C.

Napisalem procedure, ktora czeka az DB7 zmieni sie na 0 (czyli sterownik
zakonczy przetwarzac dane wewnetrzne).

#define RS P3_2
#define RW P3_3
#define BSY P2_7

void LCDwait()
{
RS=0;
RW=1;
while (BSY);
RW=0;
}

Niestety, wydaje mi sie ze ona nie dziala. Ktos moze mi pomoc roziazac ten
problem?

Pozdrawiam,
Pawel

Witam,
Jaki kompilator? po składni wnioskuję, że nie Keil. Swego czasu miałem
podobny przypadek i pamietam, że Keil przy operacjach logicznych nie działał
poprawnie, tj. while, if działało niepoprawnie jeśli testowało się zmienną
bitową.

Marcin

--
bawolski@yahoo.co.uk
www.bawolski.com.pl

Pawel
Guest

Sun Sep 17, 2006 8:51 pm   



Quote:
Jaki kompilator?
sdcc + mide


Przy okazji - moze ktos wie czemu ten kompilator nie przyjmuje mi sbit?
RIDE sobie z tym radzi?

Paweł

elektroda NewsGroups Forum Index - Elektronika Polska - Problemy z procedurą LCDwait w C podczas pracy z wyświetlaczem HD44780 na DS89C450

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map