Извиняюсь, в предыдущем коде я неверно указал опрос флагов готовности, и как я догадываюсь, в них вся проблема,
правильно так
Код
char GetStatusLCD(void)
{
char i;
i=0;
CD=1;
WR=1;
CE=0;
RD=0;
for (a=0;a<2;a++);
i=DATA;
WR=1;
RD=1;
CE=1;
CD=1;
for (a=0;a<2;a++);
return i;
}
тогда инициализация будет выглядеть так:
Код
void LcdInit()
{
delay(1000);
RST=0;
delay(100);
RST=1;
Send8LCD(1,0x80);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x00);//graphic home
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x00);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(1,0x42);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x28);//graphic ar
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x00);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(1,0x43);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x00);//text home
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x17);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(1,0x40);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x28);//text ar
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x00);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(1,0x41);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x17);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x00);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(1,0x24);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x24);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(1,0xc0);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x25);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(1,0xc0);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(0,0x2e);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(1,0xc0);
while ((GetStatusLCD()&0x03)!=0x03);
Send8LCD(1,0x9c);
}
почему-то программа зависает на первой же проверке статуса, с чем это может быть связано??