Tengo un problema para entender la función de transmisión de SPI en atmega16 la función que no entiendo es
void SPI_SendByte (s8_t data){
SPDR = data;
/* check if operation of transmit or receive is running */
while (bit_is_clear(SPSR,SPIF));
}
Creo que debería reemplazar las dos líneas como esta aquí
void SPI_SendByte (s8_t data){
/* check if operation of transmit or receive is running */
while (bit_is_clear(SPSR,SPIF));
SPDR = data;
}
¿no se supone que debemos comprobar si está ocupado primero y luego escribir los datos? ¿Por qué hicimos lo contrario? En otro protocolo de comunicación como UART, por ejemplo, primero comprobamos si está ocupado y luego escribimos para registrarnos, ¿por qué no es lo mismo en SPI?