Показать сообщение отдельно
Старый 27.04.2006, 13:05   #6
Shaman
Новичок
 
Регистрация: Apr 2006
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: В дисплее WinStar черные квадратики

У меня с новым дисплеем это работает
inline void DisplayCtrlWrite(unsigned char byte) {
unsigned char sreg;

sreg = SREG; __disable_interrupt();
ResetBitsPort(CTRL2_PORT,MASK_DRS); // Установить состояние линии DRS - 0
WritePort(IODATA_DIR,0xFF); // Направление на выдачу
WritePort(IODATA_PORT,byte); // Данные на выдачу
ResetBitsPort(CTRL2_PORT,MASK_DEN); // Установить состояние линии DEN - 0
if(byte == 1) _delay_mks(50);

SetBitsPort(CTRL2_PORT,MASK_DEN |MASK_DRS); // Установить DRS - 1 DEN - 1
WritePort(IODATA_DIR,0x00); // Направление на прием
SREG = sreg;
return;
}
То есть я
1) убрал строку SetBitsPort(CTRL2_PORT,MASK_DRS); // Установить состояние линии DRS - 1
2) поставил 50 мкс (с 20 не работает - иногда на пустых позициях загораются случайные одинаковые символы после очистки экрана)
3) добавил запрет прерываний (как это было написано в исходной функции)
Shaman вне форума   Ответить с цитированием