diff --git a/interrupts/crc/lay1+2.c b/interrupts/crc/lay1+2.c index ac13c548ad1bff4f217980deeaa458aee244460b..5a4058b1a5ed83f54ee6f1288b2b5eb0cb76bfa2 100644 --- a/interrupts/crc/lay1+2.c +++ b/interrupts/crc/lay1+2.c @@ -105,15 +105,16 @@ int main(void){ if(bufferIndex != 0) receivedFrame[receiveIndex] = frame[bufferIndex-1]; else receivedFrame[receiveIndex] = frame[MAXFRAMESIZE-1]; printf("receivedFrame[%d] = %d, bufferIndex: %d \n", receiveIndex, receivedFrame[receiveIndex], bufferIndex); - switch(receiveIndex){ - case 0: - if(receivedFrame[receiveIndex] != 0x7E) break; - case 5: + + if(receiveIndex==0) + if(receivedFrame[receiveIndex] == 0x7E) receiveIndex++; + else if(receiveIndex==5){ sizeToReceive = (uint16_t)receivedFrame[receiveIndex]; printf("sizeToReceive = %d\n", sizeToReceive); receivedFrame = (byte*) realloc (receivedFrame, (sizeToReceive+6)*sizeof(byte)); - default: - if(receiveIndex==sizeToReceive+5){ + receiveIndex++; + } + else if(receiveIndex==sizeToReceive+5){ //if(!crc_check(receivedFrame)){ //puts("Fehler bei der Ãœbertragung durch CRC-Check festgestellt"); for(uint i=0; i < sizeToReceive+6; i++) @@ -127,10 +128,10 @@ int main(void){ } */ receiveIndex = 0; - } - else - receiveIndex++; } + else + receiveIndex++; + readyToReceive = 0;