/************************************************************** Es soll alle halbe Sekunde im Wechsel 0 bzw. 1 gesendet werden. Am korrespondierenden Slave soll zur Indikation jeweils die LEDs an bzw. aus gehen Verdrahtung: MISO(Master) --> MISO(Slave) MOSI(Master) --> MOSI(Slave) SCK(Master) --> SCK(Slave) PB0(Master) --> SS(Slave) **************************************************************/ #include #include #include volatile unsigned char data; unsigned char status; SIGNAL (SIG_SPI) { data = SPDR; if (data == '1') PORTA = 0x00; //LEDs an if (data == '0') PORTA = 0xff; //LEDs aus } void slave_init (void) { DDRB |= _BV(PB4); //MISO als Ausgang, der Rest als Eingang SPCR = _BV(SPE) | _BV(SPIE); //Aktivierung des SPI + Interrupt status = SPSR; //Status löschen } int main (void) { DDRA = 0xff; slave_init (); sei (); for (;;); return 0; }