Полудуплексный обмен. Два МК. Приемники/передатчики обоих МК соединены в одну линию.
Туплю. Как отключить приемник во время передачи байта информации?
Код
#define CLEARBIT(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))
#define SETBIT(ADDRESS,BIT) (ADDRESS |= (1<<BIT))
void tx_disable( void )
{
CLEARBIT(UCSR0B, TXEN);
}
void tx_enable( void )
{
SETBIT(UCSR0B, TXEN);
}
void rx_disable( void )
{
CLEARBIT(UCSR0B, RXEN);
// UCSR0B &= ~(1 << RXEN0);
}
void rx_enable( void )
{
SETBIT(UCSR0B, RXEN);
// UCSR0B |= (1 << RXEN0);
}
void byte_to(uint8_t byte)
{
rx_disable();
tx_enable();
UDR0 = byte;
// while (!(UCSR0A&(1 << UDRE0)))
//;
while (!(UCSR0A&(1 << TXC0)))
;
tx_disable();
rx_enable();
}
Этот код не работает !
Прошу вправить мне мозг!
Сообщение отредактировал Hellper - Jan 19 2009, 20:59