USART Communicatior AVR

0

Quiero establecer una comunicación entre mi ATmega32A y PC, pero hay una línea que no entiendo. La hoja de datos dice que: "Cuando ingresen los datos, se establecerá el bit RXC0 en UCSR0A , y puede leer los datos entrantes en UDR0

La función para recibir el byte se ve así:

unsigned char USART_receive(void)
{
   while(!(UCSRA & (1<<RXC)));
   return UDR;
}

Lo que entiendo de esto: esperamos hasta que todos los bits estén dentro del registro UDR y cuando el RXC se convierta en 0, devolveremos el registro UDR. ¿Alguien puede aclararme si tengo razón o no?

    
pregunta Simon Maghiar

1 respuesta

7

Este while(!(UCSRA & (1<<RXC))); significa que espera hasta que el bit RXC esté en SET (gire a 1), en el registro UCSRA . Cuando este bit está en SET (pasa de 1 a 0), significa que tu registro UDR ha completado la recepción de un byte de datos.

    
respondido por el Abel Tom

Lea otras preguntas en las etiquetas