Gast
#1474138
Die unten stehende Funktion stammt aus dem ATMega8-Datenblatt. Um die
Zeit zu nutzen die zwischen dem Schreiben in das Register SPDR und der
vollständigen Aussendung des Bytes vergeht, habe ich die beiden
Anweisungen vertauscht. Nur jetzt funktioniert die Routine nicht mehr
korrekt (Daten werden verstümmelt). Meine Frage: warum kann ich die
Anweisungen nicht vertauschen?
void SPI_MasterTransmit(char cData)
{
SPDR = cData ; /* Start transmission */
while(!(SPSR & (1<<SPIF))) /* Wait for transmission complete */
;
}