Gast
#666634
Hallo zusammen
Ich habe den ATMega48 wie folgt als SPI-Slave konfiguriert:
void SPI_SlaveInit(void)
{
// Port B initialization
PORTB=0x00;
DDRB=0x10;
/* Set MOSI and SCK output, all others input */
DDRB = (1<<DDB3);
/* Enable SPI, Master, set clock rate fck/16 */
SPCR = (1<<SPE);
}
char SPI_SlaveReceive(void)
{
/* Wait for reception complete */
while (!(SPSR) & (1<<SPIF));
return SPDR;
}
void SPI_SlaveTransmit(char cData){
/* Start transmission */
SPDR = cData;
/* Wait for reception complete */
while (!(SPSR & (1<<SPIF)));
}
Sobald ich jedoch SPI_SlaveReceive() ausführe in einer while(1) loop
wird nicht gewartet bis ein Zeichen anliegt und wird demzufolge nicht
ausgelesen.
Hab ich irgendwas in der Konfiguration vergessen?
Vielen Dank.