Datasheet
{
chardata;
data=UDR1;
if(USART1_command_received==1)return;
switch(rx_status)
{
//‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
//AufKommandoidentificationWarten?
case0:
if(data=='?'){
USART1_rx_command_index=0;
rx_crc=0;
rx_status++;
}
break;
//‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
//AufgültigesKommandowarten
case1:
if(data=='S'){
USART1_rx_command[USART1_rx_command_index++]='S';
rx_status++;
}
else{
rx_status=0;
}
break;
//‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
//Längeermitteln
case2:
USART1_rx_command[USART1_rx_command_index++]=(char)data;
USART1_rx_command_len=(int)data;
UDR0=data;
rx_status++;
break;
//‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
//Datenlesen
case3:
USART1_rx_command[USART1_rx_command_index++]=(char)data;
rx_crc=rx_crc+data;
USART1_rx_command_len‐‐;
if(USART1_rx_command_len==0){
rx_status++;
}
break
;
//‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
//CRCZeichenempfangen
case4:
if(rx_crc==data){
USART1_command_received=1;
rx_status=0;
}
else{
}
rx_status=0;
break;
//‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
default:
rx_status=0;
break;
}
}




