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;
}
Funktioniert leider auch nur einmal...bleibt in CH2 hängen.
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...
Lesezeichen