Gast
#678439
Hallo zusammen
Ich habe SPI soweit programmiert, dass ich mit untenstehender Routine
ein Byte an den Slave schicken kann.:
char SPI_MasterTransmit(char cData)
{
uint8_t rc;
PORTB &= ~(1<<0); //SS low
// Start transmission
SPDR = cData;
while(!(SPSR & (1 << SPIF)));
rc = SPDR;
// Wait for transmission complete
PORTB |= (1<<0); //SS high
return (SPDR);
}
Nun weiss ich, dass ich mit folgedem Codestück ein Byte auf dem Slave
empfangen kann, wenn SPI_SlaveReceive() ausgeführt wurde.
char SPI_SlaveReceive(void)
{
/* Wait for reception complete */
while (!(SPSR) & (1<<SPIF));
return SPDR;
}
Nun möchte ich, dass der Slave gleichzeitig beim Empfang auch ein
Zeichen an den Master zurückschick (also ein Byte exchange), was mit SPI
ja möglich sein sollte. Muss ich dass Zeichen nun unmittelbar nach dem
Empfang auf den Bus legen oder muss dies vor dem Empfang schon
passieren?
Vielen Dank.