hallo
Ich habe auf meiner Platine eine LED und mittels folgender Funktion
lasse ich mir die 8bit-Antwort der SD-Karte durch Blinken ausgeben:
1 | void LED_EVENT(unsigned int Speed){
|
2 |
|
3 |
|
4 | LED_PORT &=~ (1<<LED);
|
5 | _delay_ms (Speed);
|
6 | LED_PORT |= (1<<LED);
|
7 | _delay_ms (Speed);
|
8 |
|
9 | }
|
10 |
|
11 | void LED_EVENT2(unsigned char Data, unsigned int Speed){
|
12 |
|
13 | LED_EVENT(Speed*10);
|
14 | LED_EVENT(Speed*10);
|
15 | _delay_ms (1000);
|
16 |
|
17 | for (int Cnt=7;Cnt>=0;Cnt--){
|
18 |
|
19 | if(Data & 0x01)
|
20 | LED_EVENT(Speed*50);
|
21 | else
|
22 | LED_EVENT(Speed*150);
|
23 |
|
24 | Data = (Data>>1);
|
25 | _delay_ms (500);
|
26 | }
|
27 | }
|
Die Antwort einer SD-Karte nach dem Senden von Command 0 sollte, so wie
ich es verstanden habe, 00000001 sein.
Meine LED blinkt aber nun so, dass 11111110 rauskommt.
Also kurz Blinken ist ne 1 und lang Blinken eine 0.
Was mach ich falsch?