Skip to content
Snippets Groups Projects
Commit 9442ce18 authored by Julia Wichmann's avatar Julia Wichmann
Browse files

Update lay1+2.c

parent 4ef039c7
No related branches found
No related tags found
No related merge requests found
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
//typedef unsigned char byte; //typedef unsigned char byte;
#define MAXFRAMESIZE 257 //in byte #define MAXFRAMESIZE 261 //in byte
// Init of Send-/Receive-Buffer // Init of Send-/Receive-Buffer
byte send[MAXFRAMESIZE]= {0}; // 0xB3, 0x10 = 10110011, 00010000 byte send[MAXFRAMESIZE]= {0}; // 0xB3, 0x10 = 10110011, 00010000
...@@ -39,10 +39,7 @@ void delay(int ms){ ...@@ -39,10 +39,7 @@ void delay(int ms){
} }
void fillSend (byte* payload, byte size){ void fillSend (byte* payload, byte size){
//payload padden (Preambel, crc berechnung, size, rückgabe, readyToSend) //payload padding (Preambel, crc berechnung, size, rückgabe, readyToSend)
for(byte i = 0; i<size; i++)
printf("%d", payload[i]);
puts("");
send[0] = 0x7E; //01111110 send[0] = 0x7E; //01111110
...@@ -51,15 +48,17 @@ void fillSend (byte* payload, byte size){ ...@@ -51,15 +48,17 @@ void fillSend (byte* payload, byte size){
byte x = 32-i*8; byte x = 32-i*8;
send[i] = (byte)((checksum & ((uint32_t)(255) << (x))) >> x); send[i] = (byte)((checksum & ((uint32_t)(255) << (x))) >> x);
} }
send[5] = size; send[5] = size;
for(byte i = 6; i < size+6; i++){ for(byte i = 6; i < size+6; i++){
send[i]= payload[i-6]; send[i]= payload[i-6];
} }
printf("Preambel = %d, CRC-Checksum = %d%d%d%d, Payload-Length = %d\nPayload= ", send[0], send[1], send[2], send[3], send[4], send[5]); /* printf("Preambel = %d, CRC-Checksum = %d%d%d%d, Payload-Length = %d\nPayload= ", send[0], send[1], send[2], send[3], send[4], send[5]);
for(byte i = 0; i < size; i++){ for(byte i = 0; i < size; i++){
printf("%d ", send[i+6]); printf("%d ", send[i+6]);
} }
puts(""); puts("");
*/
readyToSend = 1; readyToSend = 1;
} }
...@@ -104,14 +103,14 @@ int main(void){ ...@@ -104,14 +103,14 @@ int main(void){
if(readyToReceive){ if(readyToReceive){
if(bufferIndex != 0) receivedFrame[receiveIndex] = frame[bufferIndex-1]; if(bufferIndex != 0) receivedFrame[receiveIndex] = frame[bufferIndex-1];
else receivedFrame[receiveIndex] = frame[MAXFRAMESIZE-1]; else receivedFrame[receiveIndex] = frame[MAXFRAMESIZE-1];
printf("receivedFrame[%d] = %d, bufferIndex: %d \n", receiveIndex, receivedFrame[receiveIndex], bufferIndex); //printf("receivedFrame[%d] = %d, bufferIndex: %d \n", receiveIndex, receivedFrame[receiveIndex], bufferIndex);
if(receiveIndex==0){ if(receiveIndex==0){
if(receivedFrame[receiveIndex] == 0x7E) receiveIndex++; if(receivedFrame[receiveIndex] == 0x7E) receiveIndex++;
} }
else if(receiveIndex==5){ else if(receiveIndex==5){
sizeToReceive = (uint16_t)receivedFrame[receiveIndex]; sizeToReceive = (uint16_t)receivedFrame[receiveIndex];
printf("sizeToReceive = %d\n", sizeToReceive); //printf("sizeToReceive = %d\n", sizeToReceive);
receivedFrame = (byte*) realloc (receivedFrame, (sizeToReceive+6)*sizeof(byte)); receivedFrame = (byte*) realloc (receivedFrame, (sizeToReceive+6)*sizeof(byte));
receiveIndex++; receiveIndex++;
} }
...@@ -183,12 +182,9 @@ int main(void){ ...@@ -183,12 +182,9 @@ int main(void){
frame[bufferIndex] = (frame[bufferIndex] << 1) + ((PIND & (1 << PD5)) >> PD5); frame[bufferIndex] = (frame[bufferIndex] << 1) + ((PIND & (1 << PD5)) >> PD5);
bitIndex--; bitIndex--;
if(bitIndex == 255) { if(bitIndex == 255) {
if (bufferIndex == 0 && frame[bufferIndex] != 0x7E) puts("Wrong preambel."); if(bufferIndex != MAXFRAMESIZE-1) bufferIndex++;
else { else bufferIndex = 0;
if(bufferIndex != MAXFRAMESIZE-1) bufferIndex++; readyToReceive = 1;
else bufferIndex = 0;
readyToReceive = 1;
}
bitIndex=7; bitIndex=7;
} }
//frame[bufferIndex] = (frame[bufferIndex] << 1) + ((PIND & (1 << PD5)) >> PD5); //frame[bufferIndex] = (frame[bufferIndex] << 1) + ((PIND & (1 << PD5)) >> PD5);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment