signal(SIG_USART_RECV) { unsigned char i; static unsigned char odebralem_1=0; static unsigned char odebralem_2=0; static unsigned char N=0; dana[N]=UDR0; if ((dana[0]==0xEE)&&(odebralem_1!=1)) { odebralem_1=1; N++; } if ((dana[1]==0xDD)&&(dana[0]==0xEE)&&(odebralem_1=1)&&(odebralem_2!=1)) { odebralem_2=1; } if ((dana[1]!=0xDD)&&(dana[0]==0xEE)) //wyzerowanie jezeli drugi element to nie 0xDD { N=0; odebralem_1=0; odebralem_2=0; } if ((dana[1]==0xDD)&&(dana[0]==0xEE)&&(odebralem_1==1)&&(odebralem_2==1)) { if(N==5) { if (dana[5]!=(dana[2]^dana[3]^dana[4])); { for(i=0;i<6;i++) dana[i]=0; //wyzerowanie - nie pokazuje zadnej cyfry } N=0; odebralem_1=0; odebralem_2=0; dana[0]=0; dana[1]=0; } else N++; } }