zu1 ) Bitte
Code:
//DDRB
#define SPI_MOSI_DDR  DDRB
#define SPI_CLK_DDR   DDRB
#define SPI_MISO_DDR  DDRB
#define SPI_SS_DDR    DDRB

//PORTB
#define SPI_MOSI_PORT  PORTB
#define SPI_CLK_PORT   PORTB
#define SPI_MISO_PORT  PORTB
#define SPI_SS_PORT    PORTB

// PIN 
#define SPI_MOSI_PIN0  PINB0
#define SPI_SS_PIN1    PINB1
#define SPI_CLK_PIN2   PINB2
#define SPI_MISO_PIN3  PINB3
//PB
#define SPI_MOSI_PB0  PB0
#define SPI_SS_PB1    PB1
#define SPI_CLK_PB2   PB2
#define SPI_MISO_PB3  PB3

//Slave-deklaration
void SPI_INIT(void)
{
// MOSI, CLK und SS auf Eingang setzen
  SPI_MOSI_DDR = (1<<SPI_MOSI_PB0);
  SPI_CLK_DDR  = (1<<SPI_CLK_PB2);
  SPI_SS_DDR   = (1<<SPI_SS_PB1);
// MOSI, CLK und SS Internen Pull-Up aktivieren 
  SPI_MOSI_PORT |=(1<<SPI_MOSI_PB0);
  SPI_CLK_PORT  |=(1<<SPI_CLK_PB2);
  SPI_SS_PORT   |=(1<<SPI_SS_PB1);
// MISO auf Ausgang setzen 
  SPI_MISO_DDR |= (1<<SPI_MISO_PB3);
//MISO auf High setzten
  SPI_MISO_PORT |= (1<<SPI_MISO_PB3);
}
zu 2) mein fehler
Code:
for(uint16_t a =15 ; a > 0; a--)
zu3) Kennst du das nicht auch im Kopf Klang es Logisch damit meine ich er soll warten bis der Interrupt ausgelöst.

zu4) da wusste ich nicht wie ich das schreiben sollte. Ich will das er ein bit am MISO aus gibt wenn der Interrupt ausgelöst wird und ein bit weiter schiebt

zu5) er heisst nur Byte damit ich weiss es sind mehre bits

MfG Exkluski