Software modbus, display, knoppen, bewegingssensor en mbed OS
Dependents: testSoftware8_alles_display
Diff: setup.cpp
- 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 ;