Что-то никак не получается ничего..
prottoss, я и Ваш код пробовал, не работает почему-то. У меня вопрос - при подключении по 4-битной шине, куда именно должны на шину подключаться пины DB4,5,6,7?
У меня в железе вот какой расклад:
PORTD.0 - RS
PORTD.1 - R/W
PORTD.2 - E
PORTD.3
PORTD.4 - DB4
PORTD.5 - DB5
PORTD.6 - DB6
PORTD.7 - DB7
Не подскажете, как должны при этом выглядеть настройки?
У меня сейчас вот так:
// Шина данных
#define LCD_PORTDATA PORTD
#define LCD_PINDATA PIND
#define LCD_DDRDATA DDRD
// Порт управления
#define LCD_PORTCTRL PORTD
#define LCD_PINCCTRL PIND
#define LCD_DDRCTRL DDRD
// Линии управления LCD
#define LCD_wire_RS (1 << PD0)
#define LCD_wire_RW (1 << PD1)
#define LCD_wire_E (1 << PD2)
#define LCD_wire_BL (1 << PD3) // (BackLight)
Правильно? Или в программе подразумевается, что шина данных должна находиться на порту, отличном от порта с линиями управления?
UPDATEУра! Заработало! Подправил свой исходный текcт в соответствии с рекомендациями Сергея Борщ. Теперь все стабильно

Видимо, все-таки с задержками у меня какая-то фигня была. Приведу текст к более красивому виду и выложу, мало ли кому пригодится!
Теперь на повестке дня чтение данных из АЦП по SPI.
Сообщение отредактировал Pavel V. - Feb 20 2007, 20:33