Gast
#905869
Hallo Profis,
ich hab mal wieder ein Grundlagenproblem:
Und zwar habe ich anhand des Datenblatts vom ATmega8 und einiger Threads
dieses Forums den Controller nun so weit gebracht, dass er sendet.
Der Code:
********************************************************************
//HAUPTPROGRAMM
int main (void)
{
SPI_MasterInit();
sei();
for(;;)
{
SPI_MasterTransmit(0xff);
_delay_us(20);
SPI_MasterTransmit(0x00);
_delay_us(20);
}
return 0;
}
//Funktionen
void SPI_MasterInit(void)
{
/* Set MOSI and SCK output, all others input */
DDRB |= (1<<PB2) | (1<<PB3) | (1<<PB5);
/* Enable SPI, Master, set clock rate fck/16 */
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
}
void SPI_MasterTransmit(char cData)
{
/* Start transmission */
SPDR = cData;
/* Wait for transmission complete */
while(!(SPSR & (1<<SPIF)))
;
}
***********************************************************************
Nun meine Frage:
Ich will SPI nutzen, um einen Sensor auszulesen. Dazu muss erst ein char
an den Sensor gesendet werden, damit dieser weiß was ich von ihm will.
Anschließend sendet dieser ein 11Bit-Wort zurück an den Controller.
Nur: Wie empfange ich?? Vor allem ein 11Bit-Wort.
Danke für Eure Hilfe.
Gruß
Tom