HD44780 implementacja w C

Sep 17, 2006 3 Replies

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


Napisalem procedure, ktora czeka az DB7 zmieni sie na 0 (czyli sterownik

----------------------------------------------------------------- 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;

}

U¿ytkownik "Pawel" snipped-for-privacy@gazeta.pl napisa³ w wiadomo¶ci news:eejv0n$ad3$ snipped-for-privacy@inews.gazeta.pl...

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

sdcc + mide

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

Paweł

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required