Software modbus, display, knoppen, bewegingssensor en mbed OS

Dependents:   testSoftware8_alles_display

Revision:
1:92f9d6cec962
Parent:
0:d603d31b42dc
Child:
2:ca3d2395b6d3
--- a/setup.cpp	Thu Jun 07 14:28:24 2018 +0000
+++ b/setup.cpp	Fri Jun 08 06:33:04 2018 +0000
@@ -74,12 +74,10 @@
             if ( data == slaveID && buffer == 0 ) 
             {
                dataReceived[buffer++] = slaveID ;   // slaveID checks out proceed to checking function ID
-               //pc.putc(buffer);
             }
             else if ( data == 0x02 && buffer == 1)
             {
                 dataReceived[buffer++] = data ;     // FunctionID checks out proceed to receiving data 
-                //pc.putc(buffer);
             } 
             else if ( buffer == 2 || buffer == 3 ) // get data adress high and low order
             {
@@ -151,29 +149,36 @@
 int modbus_sendData(void)
 {
     int i = 0 ; 
-    int maxData = 5 ; 
+    int maxData = 0 ; 
     unsigned static int count = 0 ; 
-
-    dataSend[0] = slaveID ; 
-    dataSend[1] = dataReceived[1];
-    dataSend[2] = 0x02 ;        // byte count
-    dataSend[3] = 0x00 ;        // data 1
-    dataSend[4] = 0x00 ;        // data 2
-    if (count == 255 )
+    dataSend[maxData++] = slaveID ; 
+    dataSend[maxData++] = dataReceived[1];
+    dataSend[maxData++] = 0x01 ;        // byte count
+    count++; 
+    if ( count > 12 )
     {
+        dataSend[maxData++] = 0x00 ;     
+              
+    }
+    else 
+    {
+        dataSend[maxData++] = 0x01 ; 
+    }
+    if ( count == 25 )
+    { 
         count = 0 ; 
     }
-    uint16_t temp = calculate_crc16_Modbus(dataSend, 5 ) ; 
-    dataSend[6] = (uint8_t)temp ; 
-    dataSend[5] = ((uint16_t)temp>>8); 
-    //pc.putc(dataSend[6]);
-    //pc.putc(dataSend[5]);
+
+    uint16_t temp = calculate_crc16_Modbus(dataSend, maxData ) ; 
+    dataSend[maxData++] = (uint8_t)temp ; 
+    dataSend[maxData++] = ((uint16_t)temp>>8); 
     activateSN65 = 1 ; 
     wait_ms(3);
-    for(i = 0 ; i < maxData+2 ; i++ )
+    led1 = !led1; 
+    for(i = 0 ; i < maxData ; i++ )
     {
-        led1 = !led1; 
         bus.putc(dataSend[i]);
+        pc.putc(dataSend[i]);
         wait_us(750);
     }
     buffer = 0 ;