Quiero enviar un char a través de Atmega2560 al coordinador xbee (modo AT), y el enrutador (que está conectado a la computadora) debe recibir ese char. Puedo recibir mensajes correctamente
desde enrutador - > coordinador - > atmega . Lo que significa que la función de recepción de UART funciona correctamente. Pero cuando intento enviar de esa manera atmega - > coordinador - > enrutador , en el enrutador sigo recibiendo mensajes como ese 01 02 03 04 ... 0D...
y así sucesivamente.
iniciación de UART:
void uart_init(int baud_rate){
UBRR0H = 0x00;
UBRR0L = baud_rate; //103
/*Enabling Tx and Rx*/
UCSR0B = (1<<TXEN0);
UCSR0B = (1<<RXEN0);
/*Setting stop 8 bits and non-parity*/
UCSR0C = (1<<USBS0|3<<UCSZ00);
}
Aquí está mi código para enviar mensajes a través de UART:
void uart_send(byte data){
while (!(UCSR0A & (1<<UDRE0)))
{}
UDR0 = data;
}
Estoy enviando mensajes desde el bucle principal. Los datos a enviar son '0x73'. Im usando sparkfun explorer para enrutador, ambos de ellos son xbee series 1. La fórmula para baud_rate es (F_CPU / (BAUD * 16) - 1). He intentado reemplazar el enrutador con el coordinador, pero nada cambia.
Lo que pasa es que incluso cuando estoy desconectando este xbee del microcontrolador, sigue enviando hexademicals de 0x01 a 0xff. Así que quiero saber, qué causa estos problemas.