Цитата(Zolten @ Sep 14 2007, 07:29)

Может ктонибуть подскажет как правильно в CVAVR инициализировать дисплей.
Если пользуетесь встроенными в КодВижн функциями, то в хелпе есть даже пример использования Обратите внимание на схему подключения ЖКИ, представленную там же:
Код
The LCD module must be connected to the port bits as follows:
[LCD] [AVR Port]
RS (pin4) ------ bit 0
RD (pin 5) ------ bit 1
EN (pin 6) ------ bit 2
DB4 (pin 11) --- bit 4
DB5 (pin 12) --- bit 5
DB6 (pin 13) --- bit 6
DB7 (pin 14) --- bit 7
Если пишете свои функции работы с ЖКИ, то инициализация в соответствии с требованиями датащита (отправка определенных кодов, выдержка определенных времянок и т.д.)
У меня, например, успешно работает такой кусок кода:
Код
/*******************************************************************************
* Function Name : Lcd_DisplayInit
* Description : Инициализация ЖКИ
*******************************************************************************/
void LCD_DisplayInit(void){
// Далее следует код, который изменять не рекомендуется!!!
pLCD_SetPortOut();
conLCD_OUT.EN_BIT=0; conLCD_DIR.EN_BIT=1;
conLCD_OUT.RS_BIT=0; conLCD_DIR.RS_BIT=1;
#ifdef RW_WORK
conLCD_OUT.RW_BIT=0; conLCD_DIR.RW_BIT=1;
#endif
delay_us(2);
#ifdef DBUS8
pLCD_OUT=0x30;
#else
pLCD_OUT=(pLCD_OUT&0x0f)|0x20;
#endif
EN=1; delay_us(2); EN=0; delay_us(1500);
#ifdef DBUS8
pLCD_OUT=0x30;
#else
pLCD_OUT=(pLCD_OUT&0x0f)|0x20;
#endif
EN=1; delay_us(2); EN=0;
delay_us(1500); // ~1.5 мс
#ifdef DBUS8
#if (NUMBER_OF_LINES >=2)
LCD_WriteByte(COMMAND, FUNCTION_SET | BUS_8BIT | TWO_LINES | CHAR_5_8);
#else
LCD_WriteByte(COMMAND, FUNCTION_SET | BUS_8BIT | ONE_LINE | CHAR_5_8);
#endif
#else
#if (NUMBER_OF_LINES >=2)
LCD_WriteByte(COMMAND, FUNCTION_SET | BUS_4BIT | TWO_LINES | CHAR_5_8);
#else
LCD_WriteByte(COMMAND, FUNCTION_SET | BUS_4BIT | ONE_LINE | CHAR_5_8);
#endif
#endif
LCD_WriteByte(COMMAND, DISP_ON_OFF | DIS_ON | UNDER_ON | BLINK_ON);
LCD_WriteByte(COMMAND, ENTRY_MODE | CURS_INC | DIS_SHIFT_DIS);
LCD_WriteByte(COMMAND, CLEAR);
LCD_WriteByte(COMMAND, GO_HOME);
}
После его выполнения экран очищается, появляется мигающий курсор и дисплей готов к работе.