Подключил данный дисплей к SAM7x
Инициализирую ноги у контроллера.
Произвожу ресет у дисплея. Пока на ноге RESET ноль, на экране в случайном месте появляется горизонтальная линия.
Перевожу ресет в единицу - линия пропадает.
Далее инициализирую контроллер
CODE
#define OR_MODE ((unsigned char) 0x80)
#define SET_TEXT_HOME_ADDRESS ((unsigned char) 0x40)
#define SET_TEXT_AREA ((unsigned char) 0x41)
#define SET_GRAPHIC_HOME_ADDRESS ((unsigned char) 0x42)
#define SET_GRAPHIC_AREA ((unsigned char) 0x43)
#define TEXT_ON_GRAPHIC_ON ((unsigned char) 0x9C)
Write_Command(OR_MODE);
Write_Command_and_2_byte_data(SET_GRAPHIC_HOME_ADDRESS,0x0000);
Write_Command_and_2_byte_data(SET_GRAPHIC_AREA,0x0028);
Write_Command_and_2_byte_data(SET_TEXT_HOME_ADDRESS,0x1700);
Write_Command_and_2_byte_data(SET_TEXT_AREA,0x0028);
Write_Command(TEXT_ON_GRAPHIC_ON);
Экран чист.
Послыаю текстовые данные на вывод
CODE
#define SET_ADDRESS_POINTER ((unsigned char) 0x24)
#define DATA_WRITE_AND_INCREMENT_ADP ((unsigned char) 0xC0)
Write_Data(0x00);
Write_Data(0x17);
Write_Command(SET_ADDRESS_POINTER);
Write_Data(0x14);
Write_Command(DATA_WRITE_AND_INCREMENT_ADP);
Write_Data(0x15);
Write_Command(DATA_WRITE_AND_INCREMENT_ADP);
Write_Data(0x16);
Write_Command(DATA_WRITE_AND_INCREMENT_ADP);
Write_Data(0x17);
Write_Command(DATA_WRITE_AND_INCREMENT_ADP);
Я так понимаю, что он мне должен вывести 4 символа подряд, но экран чист
Прочитал эту же область памяти, все 4 кода вернулись в том же порядке.
Читаю статус панели = 0xAB
или в бинарном виде 10101011 (старший бит первый)
Но, если читать статус постоянно, старший бит начинает прыгать, то 0, то 1.
Это нормально?
Может что-то не так в инициализации?
з.ы. Выход FS всегда 1
Выход RV - и 0, и 1 пробывал