Bei SPI (zumindest im Mode Master) ist es so,
dass Du zuerst was senden musst, bevor Du was empfangen kannst,
auch wenn es nur ein Dummy-Byte ist.
Also wenn ein Byte gesendet wird, dann wird das Byte nach aussen
übertragen, und zugleich ein Byte empfangen
(ganz egal, ob das angesprochene Gerät etwas zu senden hatte oder nicht)
Möglicherweise brauchst Du etwas in dieser Art:
(Senden und Empfangen vertauscht)
while(1)
{
PORTB |= (1<<PB2);
spi_senden(0x55);
data_received=spi_empfangen();
_delay_ms(50);
PORTB &=~ (1<<PB2);
}