Tesi Sitael / Mbed 2 deprecated TGP_SET_GPO_CMD_PASSED

Dependencies:   mbed

Revision:
5:851e7afdc4fe
Parent:
4:a5b5809ee14f
--- a/main.cpp	Wed Dec 12 09:26:53 2018 +0000
+++ b/main.cpp	Fri Dec 21 15:39:53 2018 +0000
@@ -1,7 +1,22 @@
 #include "mbed.h"
+#include "TYPE_Def.h"
+#include "CRC32BIT_LOOKUP_Ext.h"
+
 
 Serial pc(USBTX, USBRX); // tx, rx
 
+UINT32_T crc;
+ERROR_T ERROR_Value;
+CRC32BIT_LOOKUP_TS _Crc32Table_TGP_DUT;
+BYTE_T vettore[11];
+char crcchar[4];
+unsigned int j;
+
+//char crc[4] = {0xBD ,0x5A , 0x97 , 0xDD};
+char packetsize[4] = {0x00 ,0x00 , 0x00 , 0x0F};
+
+
+
     DigitalIn mybutton(USER_BUTTON);
     DigitalOut myled(LED2);
 
@@ -42,7 +57,7 @@
     DigitalOut Porta3_1 (PB_12);
     DigitalOut Porta3_0 (PC_4);
 
-
+void crc_cal();
 void TGP_SET_GPO_CMD();
 void TGP_SET_GPO_ACK(char*, char*, char*, char*, char*);
 void GPIO_SET(char*,char*,char*,char*,char*,char*,char*,char*);
@@ -50,9 +65,12 @@
 
 int main()
 {
+    
+    pc.baud(9600);
+    
     while(1)
     {
-        TGP_SET_GPO_CMD();
+        pc.attach(&TGP_SET_GPO_CMD,Serial::RxIrq);
     }
     
     
@@ -78,55 +96,59 @@
         char UINT32_Port3Mask [4];
         char UINT32_CRC [4];
         
+        myled = 0;
+        
         for(i=0; i<4; i++){
-            pc.scanf("%c",&UINT32_PacketSize[i]);
+            UINT32_PacketSize[i] = pc.getc();
         }
         
-        pc.scanf("%c",&ENUM_Packet_ID);
+        ENUM_Packet_ID=pc.getc();
         
         for(i=0; i<2; i++){
-            pc.scanf("%c",&UINT16_PacketCounter[i]);
+            UINT16_PacketCounter[i]=pc.getc();
         }
         
         for(i=0; i<4; i++){
-            pc.scanf("%c",&UINT32_Timestamp[i]);
+            UINT32_Timestamp[i]=pc.getc();
         }
         
         for(i=0; i<4; i++){
-            pc.scanf("%c",&UINT32_Port0Value[i]);
+            UINT32_Port0Value[i]=pc.getc();
         }
         
         for(i=0; i<4; i++){
-            pc.scanf("%c",&UINT32_Port0Mask[i]);
+            UINT32_Port0Mask[i]=pc.getc();
         }
         
         for(i=0; i<4; i++){
-            pc.scanf("%c",&UINT32_Port1Value[i]);
+            UINT32_Port1Value[i]=pc.getc();
         }
         
         for(i=0; i<4; i++){
-            pc.scanf("%c",&UINT32_Port1Mask[i]);
+            UINT32_Port1Mask[i]=pc.getc();
         }
         
         for(i=0; i<4; i++){
-            pc.scanf("%c",&UINT32_Port2Value[i]);
+            UINT32_Port2Value[i]=pc.getc();
         }
         
         for(i=0; i<4; i++){
-            pc.scanf("%c",&UINT32_Port2Mask[i]);
+            UINT32_Port2Mask[i]=pc.getc();
+        }
+        
+        for(i=0; i<4; i++){
+            UINT32_Port3Value[i]=pc.getc();
         }
         
         for(i=0; i<4; i++){
-            pc.scanf("%c",&UINT32_Port3Value[i]);
+            UINT32_Port3Mask[i]=pc.getc();
         }
         
         for(i=0; i<4; i++){
-            pc.scanf("%c",&UINT32_Port3Mask[i]);
+            UINT32_CRC[i]=pc.getc();
         }
         
-        for(i=0; i<4; i++){
-            pc.scanf("%c",&UINT32_CRC[i]);
-        }
+        myled = 1;
         
         TGP_SET_GPO_ACK(UINT32_PacketSize,&ENUM_Packet_ID,UINT16_PacketCounter,UINT32_Timestamp,UINT32_CRC);
         GPIO_SET(UINT32_Port0Value,UINT32_Port0Mask,UINT32_Port1Value,UINT32_Port1Mask,UINT32_Port2Value,UINT32_Port2Mask,UINT32_Port3Value,UINT32_Port3Mask);
@@ -168,12 +190,36 @@
         UINT32_CRC[i] = E[i];
     }
     
+    //def vettore
+    j=0;
+    for(i=0; i<4; i++){
+            vettore[j] = packetsize[i];
+            j++;
+    }
     
+    vettore[j] = ENUM_Packet_ID+1;
+    j++;
+    
+    for(i=0; i<2; i++){
+            vettore[j] = UINT16_PacketCounter[i];
+            j++;
+        }
+        
+    for(i=0; i<4; i++){
+            vettore[j] = UINT32_Timestamp[i];
+            j++;
+        }  
+    
+    /*
     for(i=0; i<4; i++){
             pc.printf("%c",UINT32_PacketSize[i]);
         }
+    */
+    for(i=0; i<4; i++){
+            pc.printf("%c",packetsize[i]);
+        }
         
-    pc.printf("%c",ENUM_Packet_ID);
+    pc.printf("%c",ENUM_Packet_ID+1);
     
     for(i=0; i<2; i++){
             pc.printf("%c",UINT16_PacketCounter[i]);
@@ -182,10 +228,20 @@
     for(i=0; i<4; i++){
             pc.printf("%c",UINT32_Timestamp[i]);
         }
-        
+      
+    /*    
     for(i=0; i<4; i++){
             pc.printf("%c",UINT32_CRC[i]);
         }
+    */
+    
+    crc_cal();
+    
+    for(i=0; i<4; i++){
+            pc.printf("%c",crcchar[i]);
+        }
+        
+        myled = 0;
        
 }
 
@@ -283,12 +339,11 @@
         bit3[i]=porta3[i];   
     }
     
-    while(1)
-    {   
+    //while(1)
+    //{   
     
-        myled = mybutton;
-        if(mybutton == 0 & btts ==0)
-        {
+        //if(mybutton == 0 & btts ==0)
+        //{
             Porta0_7 = bit0[0];
             Porta0_6 = bit0[1];
             Porta0_5 = bit0[2];
@@ -325,8 +380,9 @@
             Porta3_1 = bit3[6];
             Porta3_0 = bit3[7];
             
-            btts = 1;          
-        } else if (mybutton == 1 & btts == 1) {
+        //    wait(1);
+        //    btts = 1;          
+        //} else if (mybutton == 0 & btts == 1) {
             
             Porta0_7 = bit0[8];
             Porta0_6 = bit0[9];
@@ -364,8 +420,9 @@
             Porta3_1 = bit3[14];
             Porta3_0 = bit3[15];
             
-            btts = 2;
-        } else if (mybutton == 0 & btts == 2) {
+         //   wait(1);
+         //   btts = 2;
+        //} else if (mybutton == 0 & btts == 2) {
             
             Porta0_7 = bit0[16];
             Porta0_6 = bit0[17];
@@ -403,8 +460,9 @@
             Porta3_1 = bit3[22];
             Porta3_0 = bit3[23];
             
-            btts = 3;
-        } else if (mybutton == 1 & btts == 3) {
+        //    wait(1);
+        //    btts = 3;
+        //} else if (mybutton == 0 & btts == 3) {
             
             Porta0_7 = bit0[24];
             Porta0_6 = bit0[25];
@@ -442,12 +500,13 @@
             Porta3_1 = bit3[30];
             Porta3_0 = bit3[31];
             
-            btts = 4;
-        } else if (mybutton == 0 & btts == 4)
-        {
-            break;
-        }
-    }
+        //    wait(1);
+          //  btts = 4;
+        //} else if (mybutton == 0 & btts == 4)
+       // {
+       //     break;
+       // }
+   // }
        
 }
 
@@ -534,4 +593,28 @@
     }
     
     return &msb3[0];   
+}
+
+void crc_cal()
+{   
+    
+    
+    
+    
+    _Crc32Table_TGP_DUT.UINT32_Poly = 0xE7994FEB;
+   _Crc32Table_TGP_DUT.UINT32_Init =  0xFFFFFFFF;
+   _Crc32Table_TGP_DUT.BOOL_RefIn = FALSE;
+   _Crc32Table_TGP_DUT.BOOL_RefOut =  FALSE;
+   _Crc32Table_TGP_DUT.UINT32_XorOut = 0x00000000;
+
+   /* Inizializzazione della tabella */
+   ERROR_Value = CRC32BIT_LOOKUP_Init(&_Crc32Table_TGP_DUT);
+   
+   crc = CRC32BIT_LOOKUP_Compute(vettore,11,&_Crc32Table_TGP_DUT);
+   
+   crcchar[0] = (crc >> 24) & 0xFF;
+    crcchar[1] = (crc >> 16) & 0xFF;
+    crcchar[2] = (crc >> 8) & 0xFF;
+    crcchar[3] = crc & 0xFF;
+   
 }
\ No newline at end of file