Hall an alle

Ich versuch seit letzte Woche vergeblich den Max7221 mit dem Mega88 über SPI ansteuern. Leider werden all Digits eingeschalten.

Viellechr kann mir wer helfen

Hier der Code:

Code:
int main (void)
{
	DDRC &= ~(1 << 1);
	spi_init();
	i2c_init();
	segments_init();
	adc_init();
	
	spi_senden(0x0A, 0x0C); //Helligkeit
	show_temp();
	
	while(1)
	{
	PORTC^= (1 << 1);
	delay(1000);
	}
	return 0;
}

void spi_init (void)
{
	DDRB = ((1 << PB3) | (1 << PB5) | (1 << PB2)); //MOSI, SCK, SS Output, alle anderen Input
	PORTB &= ~((1 << PB3) | (1 << PB5) | (1 << PB2));
	SPCR = ((1 << SPE) | (1 << MSTR)); 
}

void spi_senden (uint8_t adress, uint8_t data)
{
	PORTB &= ~(1 << PB2); //SS auf Low
	SPDR = adress;
	while (!(SPSR & (1 << SPIF))); //warten bis gesendet
	SPDR = data;
	while (!(SPSR & (1 << SPIF))); //warten bis gesendet
	PORTB |= (1 << PB2); //SS auf high
}

void segments_init(void)
{
	spi_senden(0x0B, 0x05); //6 Digits 0-5
	spi_senden(0x0F, 0x00); //Display Test ausschaltren
	spi_senden(0x0C, 0x01); //Normal Operation
	spi_senden(0x09, 0xFF); //BCD Code für alle Digits
}

void show_temp(void)
{
	uint8_t temp, nachkomma, zehner, einer;
	
	readfromLM75(&temp, &nachkomma);
	
	zehner = temp / 10; 
	einer = temp % 10;
	
	spi_senden(0x09, 0x00); //Disable BCD Code
	spi_senden(0x01, 0x4E); //C
	spi_senden(0x02, 0x63); //°
	spi_senden(0x09, 0xFF); //Enable BCD for all Digits
	
	spi_senden(0x04, nachkomma);
	spi_senden(0x05, einer);
	spi_senden(0x06, zehner);
}
An den Segementanzeigen sollte eigentlich die Temperatur, die über einen LM75 Temperatursensor ausgelesen wird angezeigt werden.

Danke im Voraus

Gruß Robert