#include // * CS - to digital pin 10 (SS pin) // * SDI - to digital pin 11 (MOSI pin) // * SDI - to digitak pin 12 (MISO pin) // * CLK - to digital pin 13 (SCK pin) // Vorbereitungen um als Slave Daten zu empfangen char recieve_buff [100]; volatile byte pos; volatile boolean process_it; // PINS fuer SPI const int slaveSelectPin = 10; const int miso = 12; const int mosi = 11; void setup() { Serial.begin (115200); // debugging pinMode(slaveSelectPin, INPUT); pinMode(miso, OUTPUT); // SPI als Slave aktivieren SPCR |= _BV(SPE); // interrupt vorbereitung pos =0; //recieve Buffer leer process_it = false; SPI.attachInterrupt(); // initialize the digital pin as an output. pinMode(0, OUTPUT); pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); // ... und so weiter // Initialize SPI // SPI.begin(); } //PINS/Bitmask fuer LEDs int LED0 = 0x01; int LED1 = 0x02; int LED2 = 0x04; int LED3 = 0x08; int PWM_BASE = 15; ISR (SPI_STC_vect) { byte c = SPDR; if (pos < sizeof recieve_buff) { recieve_buff[pos++] = c; if (c == '\n') { process_it = true; } } } void loop() { //Verarbeitung der empfangenen Nachricht if (process_it == true) { recieve_buff[pos]=0; Serial.println (recieve_buff); pos = 0; process_it == false; } Serial.println("huhu"); }