Hallo zusammen, ich versuche momentan eine Verbindung zwischen zwei AVR's via SPI Interface aufzubauen. Der Slave soll bei jedem erfolgreich empfangenen Zeichen ein "0xAC" als Antwort senden. Im Screenshot sieht man allerdings, dass er regelmäßig nicht in den Interrupt springt und das empfangene Zeichen unverändert wieder rausschiebt. Kann mir jemand sagen was ich falsch mache? Oo Hier einmal der Code für den Slave:
1 | #include <avr/io.h> |
2 | #include <avr/interrupt.h> |
3 | |
4 | int main(void) |
5 | {
|
6 | /* MISO = output */
|
7 | DDRB |= (1<<PB6); |
8 | |
9 | /* SPI enable */
|
10 | SPCR0 |= (1<<SPE0) | (1<<SPIE0); |
11 | |
12 | /* global interrupt enable */
|
13 | sei(); |
14 | |
15 | while(1); |
16 | }
|
17 | |
18 | ISR(SPI_STC_vect) |
19 | {
|
20 | SPDR0 = 0xAC; // send ACK; |
21 | }
|
Gruß, Martin