Цитата(ks007 @ Jun 11 2011, 13:59)

Что не так делаю, не пойму?
Попробуйте посмотреть аппноты производителя - в каких-то есть пример реализации функции типа "uint8_t OW_SendByte(uint8_t)", которая при вызове OW_SendByte(0xff) выполняет роль функции типа "uint8_t OW_ReceiveByte(void)".
В Вашей же программе нет и намёка на приём чего-то вразумительного от слейва.
Достаточно "PORTD&=~(1<<PD0);" сделать единожды в начале программы, и сократить OW_SEND_ONE(), OW_SEND_ZERO() до
Код
#define OW_SEND_x3() DDRD|=(1<<DDD0);\
DELAY_US(t1);\
DDRD&=~(1<<DDD0);\
DELAY_US(t2)
А можно просто в конфе поискать тома понаписатого про ванварь...