Hallo,
ich versuche seit gestern das RFID-Modul mit RC522 selbst anzusteuern,
was momenten wegen einem simplen (?) SPI-Problem nicht funktioniert.
Ich habe jetzt nach einigem Testen folgenden Code zusammen bekommen,
dabei sollte die LED an PORTD6 leuchten, was sie aber nicht tut:
1 | #include <avr/io.h>
|
2 |
|
3 |
|
4 | int main (void) {
|
5 | PORTB |= (1<<2); // cs/ss
|
6 | DDRB |= (1<<2); // cs/ss
|
7 |
|
8 | SPCR = (1<<SPE) | (1<MSTR); // spi enable, master
|
9 |
|
10 | DDRB |= (1<<5) | (1<<3); // sck, mosi
|
11 | DDRB &= ~(1<<4); // miso
|
12 |
|
13 |
|
14 | DDRD |= (1<<6);
|
15 | if (SPCR & (1<<MSTR))
|
16 | PORTD |= (1<<6);
|
17 |
|
18 |
|
19 | for(;;);
|
20 | return 0;
|
21 | }
|
Eigentlich ganz simpel, aber was ist der Fehler? Warum wird das MSTR-Bit
wieder gelöscht? Habe nur gelesen, dass dies automatisch passiert, wenn
SS ein Input ist und ein entsprechendes Signal bekommt.
Danke schon mal
burgerohnealles