Hallo zusammen, ich versuche verzweifelt Befehle anhand von bestimmten empfangenen Zeichen auszuführen. Zum Empfangen wurde die Uart Library von Peter Fleury verwendet. Ich würde gerne die Hintergründe verstehen warum hier ein Switch Case fehlschlägt. Wie könnte ich so einen Vergleich von EINEM Zeichen realisieren? Hier mein Versuch:
1 | int main(void) |
2 | {
|
3 | unsigned int c; |
4 | uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) ); |
5 | sei(); |
6 | |
7 | for(;;) |
8 | {
|
9 | c = uart_getc(); |
10 | if ( c & UART_NO_DATA ) |
11 | {
|
12 | /* * no data available from UART */
|
13 | }
|
14 | else
|
15 | {
|
16 | uart_putc( c ); //Zeichen wieder ausgeben |
17 | switch(c){ |
18 | case 1: |
19 | uart_puts("a wurde empfangen"); //z.B. Befehl 1 ausführen |
20 | case 2: |
21 | uart_puts("b wurde empfangen"); } |
22 | }
|
23 | }
|
24 | }
|