Gast
#366526
Hallo Leute,
ich brauche mal kurz eure Hilfe. Ich denke das es für ein ein leichtes
sein wird, aber ich habe momentan eine kleine Denkblockade :-)
nun gut, ich verwende die uart.c von Peter Fleury.
Ic möchte über Rs232 ein befehl empfangen, welches in einer for(;;)
loop rennt. sieht ca. so aus....
for(;;)
{
c = uart_getc();
if ( c & UART_NO_DATA )
{
//no data available from UART
}
else
{
if ( c & UART_FRAME_ERROR )
{
//uart_puts_P("UART Frame Error: ");
}
if ( c & UART_OVERRUN_ERROR )
{
//uart_puts_P("UART Overrun Error: ");
}
if ( c & UART_BUFFER_OVERFLOW )
{
//uart_puts_P("Buffer overflow error: ");
}
uart_putc( (unsigned char)c );
command[k]=c;
k++;
if(k==4)
{
command[k++]='\0';
k=0;
uart_puts_P(">");
if (strcmp(command, "reset") == 0) //stricmp
{
uart_puts_P("reset!");
}
}
}
jetzt ist ja das Dilemma, das "k" bei jedem Durchlauf erhöht wird,
was ich ja nicht will, sondern nur wenn ein "neues" Zeichen empfangen
wird um es ins array zu schieben. Kenn mir da jemand einen guten Tip
geben,wie man das schlau macht.
vielen Dank schon mal