Gast
#2784542
Hallo zusammen, versuche per SPI mit einem ATmega einen Beschleunigungssensor auszulesen. Da ich Anfänger bin, habe ich mir bei http://www.ermicro.com/blog/?p=1050 einiges abgekuckt. Beim Debuggen stehe ich immer vor folgendem Problem. Wenn ich den Dateninhalt von data übertragen will, wird die Transmission nicht beendet.(Er bleibt in der while-Schleife, was ja bedeutet, dass das Status Interrupt Flag nicht gesetzt wird). void SPI_MasterTransmit(uint8_t adress, uint8_t data) { DDR_SPI &= ~(1<<DD_SS); //activate SS pin SPDR = adress ; // Start transmission of adress while(!(SPSR & (1<<SPIF))) // Wait for transmission complete ; SPDR = data ; // Start transmission of data (register) while(!(SPSR & (1<<SPIF))) // Wait for transmission complete ; DDR_SPI |= (1<<DD_SS); //deactivate SS pin } Wenn ich aber die beiden Zeilen "activate SS pin" und "deactivate SS pin" auskommentiere, funktioniert das Debuggen. Ich bin mir aber ziemlich sicher, dass ich die beiden Zeilen brauche. So wurde es auch in dem Programmbeispiel von http://www.ermicro.com/blog/?p=1050 gezeigt.