Also Das Display ist ein Nokia 6100 von Display 3000

Mein Fehler liegt bei folgender Zeile im SPI Init ich weiß aber den Unterschied nicht.



void spi_init()
{
int Timeout = 0;


MMC_Direction_REG &=~(1<<SPI_DI);
MMC_Direction_REG |= (1<<SPI_Clock);
MMC_Direction_REG |= (1<<SPI_DO);
MMC_Direction_REG1 |= (1<<MMC_Chip_Select);
MMC_Direction_REG |= (1<<SPI_SS);
MMC_Direction_REG |= (1<<DISPL_RESET);
MMC_Direction_REG |= (1<<DISPL_Chip_Select);



MMC_Write1 |= (1<<MMC_Chip_Select);
MMC_Write |= (1<<DISPL_Chip_Select);
for(int a=0;a<200;a++)
{
nop();
};
//Wartet eine kurze Zeit

SPCR=(1<<SPIE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1);
//Display OK SDCARD nicht

//SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1);
//SDCARD OK Display nicht
SPSR = (0<<SPI2X);
return(0);
}

#define MMC_Write PORTB
#define MMC_Write1 PORTA
#define MMC_Read PINB
#define MMC_Direction_REG DDRB
#define MMC_Direction_REG1 DDRA //CS für SDCARD
#define SPI_DI 3
#define SPI_DO 2
#define SPI_Clock 1
#define MMC_Chip_Select 1
#define SPI_SS 0
#define DISPL_Chip_Select 5
#define DISPL_RESET 6


Das heist wenn ich den SPI nicht einschalte dann geht das display aber die SD nicht und umgekehrt.