Hallo, ich habe ein ATmega1280 und möchte über SPI daten einem anderen Gerät schicken. Leider klappt es nicht. Mein Code ist:
1 | DDRA |= _BV(PIN3)| _BV(PIN5); //SS PINA5 |
2 | PORTA = 0; |
3 | |
4 | DDRB = _BV(PIN1); //SCK output |
5 | DDRB |= _BV(PIN2); //MOSI output |
6 | |
7 | SPCR = _BV(SPE); |
8 | SPCR |= _BV(MSTR); |
9 | SPCR |= _BV(SPR0); |
10 | |
11 | |
12 | for (;;) |
13 | {
|
14 | PORTA &= ~_BV(PIN3); // LED on |
15 | PORTA &= ~_BV(PIN5); //SS am Slave Low --> Beginn der Übertragung |
16 | SPDR = '1'; |
17 | _delay_ms(500); |
18 | PORTA |= _BV(PIN5); //SS High --> Ende der Übertragung |
19 | PORTA |= _BV(PIN3); // LED off |
20 | _delay_ms(500); |
21 | }
|
So soll ein LED blinken und gleichzeitig ein Byte über SPI geschickt werden. Das LED blink aber wie ihr von der Abschnitt von der Oszilloskop sehen könnt, wird kein Byte über SPI geschickt. Habt ihr eine Ahnung wo das Problem liegen kann? Besten Dank!