QUOTE (Pavel_Bor @ Jul 22 2011, 12:42)

Выходит что на линии всегда висит единица, кроме тех моментов, когда микросхема или контроллер формируют ноль?
Чтобы выдавать единицу достаточно направление порта сделать входом с включенной подтяжкой? (Вот здесь OUT=1)?
Да! И включать подтяжку не надо - подтяжка должна быть внешняя. Поэтому и получается, что OUT=1 никогда не происходит.
QUOTE (Pavel_Bor @ Jul 22 2011, 12:42)

Получается что смысла в инициализации тогда тоже нет.
Ну, при общей настройке портов нужно настроить эти линии на ввод и прописать в OUT 0, собственно и все.
QUOTE (Pavel_Bor @ Jul 22 2011, 12:42)

А как насчет вот этих строк
Я думаю здесь ошибка.
Так глубоко еще ваш код не смотрел. Сейчас подумаю.
QUOTE (Pavel_Bor @ Jul 22 2011, 12:42)

CODE
b = (PORTD.IN&(SERIAL_FLASH_DATA)); // При записи
Ну вот тут явно ошибка, должно быть b = PORTD.IN & (1 << SERIAL_FLASH_DATA);