Цитата(=GM= @ Jan 20 2009, 02:52)

Надо бы передатчик отключать, причём на другой стороне, а не приёмник. Приёмник пусть себе принимает.
отключать нужно именно приемник, тк ему не следует считывать то, что сам отправил.
Цитата(Александр Куличок @ Jan 20 2009, 03:27)

Достаточно очистить бит RXEN:
Может, вместо TXEN, RXEN нужно писать TXEN0, RXEN0?
не работает. не играет никакой роли.
Код
/* USART Control Register B (generic) */
#define RXCIE 7
#define TXCIE 6
#define UDRIE 5
#define RXEN 4
#define TXEN 3
#define UCSZ 2
#define UCSZ2 2 /* new name in datasheet (2467E-AVR-05/02) */
#define RXB8 1
#define TXB8 0
/* USART1 Control Register B - UCSR1B */
#define RXCIE1 7
#define TXCIE1 6
#define UDRIE1 5
#define RXEN1 4
#define TXEN1 3
#define UCSZ12 2
#define RXB81 1
#define TXB81 0
/* USART0 Control Register B - UCSR0B */
#define RXCIE0 7
#define TXCIE0 6
#define UDRIE0 5
#define RXEN0 4
#define TXEN0 3
#define UCSZ02 2
#define RXB80 1
#define TXB80 0
Цитата
А вместо этого следовало бы описать, что для Вас означает "не работает". Т.е. что Вы хотели получить в результате выполнения кода и что получили.
Не работает, означает, что во время передачи приемник не выключается и начинает считывать данные с линии.
Цитата
Надо бы передатчик отключать, причём на другой стороне, а не приёмник. Приёмник пусть себе принимает.
Нужно отключать именно приемник на передающей стороне.
PS Использую WinAVR-20081205