Gast
#2281600
Hallo Forum,
ich experimentiere gerade mit dem SPI-Modul eines Mega8.
void spi_init(void)
{
MOSI_DDR|=(1<<MOSI);//DDR MOSI-Pin
SCK_DDR|=(1<<SCK);//DDR MISO-Pin
SS_DDR|=(1<<SS); //DDR /SS-Pin, notwendig für Master Mode
SPCR=(1<<SPE)|(1<<MSTR); //Enable SPI, Master, f_Clk/4
SPCR|=(1<<CPOL);//|(1<<CPHA); /SPI Mode 3
SPSR=(1<<SPI2X); //Double Speed -> f_Clk/2
}
unsigned char spi_trx(unsigned char c)
{
SPDR=c; // SPI Datenregister laden
while (!(SPSR&(1<<SPIF))); // auf SPIF warten
return SPDR; // eingelesenes Byte rückgeben
}
Es funktioniert auch soweit alles, aber es schein keinen Unterschied zu
machen, ob CPHA in SPCR gesetzt ist oder nicht, das Oszillogramm schau
immer gleich aus.
Woran kann das liegen?
