Funktioniert leider auch nur einmal...bleibt in CH2 hängen.Code:{ static uint8_t state = 0; static uint8_t channel = 0; // empfangenes Zeichen auslesen uint8_t buffer = UDR; switch (state) { case 0: if (buffer == '<') { state = 1; } else state = 0; break; case 1: if (buffer == 'C') { state = 2; } else state = 0; break; case 2: if (buffer == 'H') { state = 3; } else state = 0; break; case 3: channel = buffer; state = 4; break; case 4: if (buffer == '>') if (channel == '1') { PORTD = 0b11011111; PORTB = 0b11110111; p_string = ch1; USR |= (1<<UDRE); } if (channel == '2') { PORTD = 0b11111111; PORTB = 0b11101111; p_string = ch2; USR |= (1<<UDRE); } else state = 0; break; default: state = 0; }
Wenn ich uC resete, dann <CH1> eingebe, wechselt er...
Wenn ich jetzt <CH2> eingebe, wechselt er auch...
Und von hier an hängt er...
Wenn ich nach dem Reset mit <CH2> anfange hängt er sich gleich auf...







Zitieren

Lesezeichen