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ł