pl ack in tmtc

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of COM_MNG_TMTC_SIMPLE_pl123 by shubham c

Revision:
138:71ed56f2ec50
Parent:
6:79d422d1ed42
--- a/crc.h	Sat Mar 12 10:42:22 2016 +0000
+++ b/crc.h	Wed Mar 30 13:03:24 2016 +0000
@@ -74,4 +74,39 @@
     }
     
     return remainder;
-}
\ No newline at end of file
+}
+
+uint16_t crc16_gen1( char message[], unsigned int nBytes){
+    crctype16 remainder = 0xffff;
+    int byte;
+    char bit;
+    
+    for( byte = 0 ; byte < nBytes ; byte++ ){
+        /*
+        Bring the data byte by byte
+        each time only one byte is brought
+        0 xor x = x
+        */
+        remainder = remainder ^ ( message[byte] << 8 );
+        
+        for( bit = 8 ; bit > 0 ; bit--){
+            /*
+            for each bit, xor the remainder with polynomial
+            if the MSB is 1
+            */
+            if(remainder & TOPBIT16){
+                remainder = (remainder << 1) ^ POLYNOMIAL16;
+                /*
+                each time the remainder is xor-ed with polynomial, the MSB is made zero
+                hence the first digit of the remainder is ignored in the loop
+                */
+            }
+            else{
+                remainder = (remainder << 1);
+            }
+        }
+    }
+    
+    return remainder;
+}
+