1)
Code:
if(!(SPI_SS_PIN1 & (1<<SPI_SS_PB1)))
Da würde ich gerne mal die Definition von SPI_SS_PIN1 sehen.
2)
Code:
for(uint16_t a =15 ; a = 0 ; a--)
"a = 0" ist eine Zuweisung, kein Vergleich. Aber auch wenn es ein Vergleich wäre, wäre es falsch, denn die Bedingung in einer for-Schleife ist eine "solange"-Bedingung, keine "bis"-Bedingung.
3)
Code:
while(GIMSK & (1<<INT0));
//warte bis am Externen Interrupt etwas passiert
Da muss ich dich jetzt aber mal ernsthaft fragen: wie kommst du nur darauf? Was im Datenblatt lässt dich denken, dass dieses while das machen könnte, was im Kommentar steht?
4) Und last but not least, warum wird sowohl in einer Schleife in main, als auch in einer ISR etwas auf dem MISO-Pin ausgegeben?
Lesezeichen