Hey ExKluski,
schau Dir mal diesen Slave Code an:
Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
volatile unsigned char data;
unsigned char status;
SIGNAL (SIG_SPI) {
data = SPDR;
if (data == '1') PORTD = 0x00; //LEDs an
if (data == '0') PORTD = 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) {
DDRD = 0xff;
slave_init ();
sei ();
for (;;);
return 0;
}
Quelle: http://www.mikrocontroller.net/topic/12197
Es ist schwer Deinem Code etwas zu entlocken, wie sieht der Rest aus, hast Du alle nötigen includes? Wie sieht Deine main() aus?
Ist Deine Schaltung korrekt?
Gruß
Lesezeichen