See: https://github.com/EEEManchester/Food-Computer

Dependencies:   DHT DS1820 MODSERIAL ModbusSlave232 SoftSerial TSL2561_I2C mbed millis

Fork of ModbusRTU-RS232 by Afdhal Atiff Tan

Committer:
AfdhalAtiffTan
Date:
Fri Jul 22 09:45:54 2016 +0000
Revision:
0:74eb078d4846
Child:
1:77e7cf856fae
Added small comments.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AfdhalAtiffTan 0:74eb078d4846 1 #include "mbed.h"
AfdhalAtiffTan 0:74eb078d4846 2 #include "rtos.h"
AfdhalAtiffTan 0:74eb078d4846 3 #include "ModbusSlave232.h" //see readme
AfdhalAtiffTan 0:74eb078d4846 4 #include "millis.h" //see readme
AfdhalAtiffTan 0:74eb078d4846 5
AfdhalAtiffTan 0:74eb078d4846 6 ModbusSlave232 mbs; // Create new mbs instance
AfdhalAtiffTan 0:74eb078d4846 7
AfdhalAtiffTan 0:74eb078d4846 8 // Slave registers
AfdhalAtiffTan 0:74eb078d4846 9 enum {
AfdhalAtiffTan 0:74eb078d4846 10 MB_0, // Register 0
AfdhalAtiffTan 0:74eb078d4846 11 MB_1, // Register 1
AfdhalAtiffTan 0:74eb078d4846 12 MB_2, // Register 2
AfdhalAtiffTan 0:74eb078d4846 13 MB_3, // Register 3
AfdhalAtiffTan 0:74eb078d4846 14 MB_4, // Register 4
AfdhalAtiffTan 0:74eb078d4846 15 MB_REGS // Dummy register. using 0 offset to keep size of array
AfdhalAtiffTan 0:74eb078d4846 16 };
AfdhalAtiffTan 0:74eb078d4846 17
AfdhalAtiffTan 0:74eb078d4846 18 DigitalOut led1(LED1);
AfdhalAtiffTan 0:74eb078d4846 19
AfdhalAtiffTan 0:74eb078d4846 20 int regs[MB_REGS];
AfdhalAtiffTan 0:74eb078d4846 21
AfdhalAtiffTan 0:74eb078d4846 22 void another_thread(void const *argument) // do stuff
AfdhalAtiffTan 0:74eb078d4846 23 {
AfdhalAtiffTan 0:74eb078d4846 24 while (true) {
AfdhalAtiffTan 0:74eb078d4846 25 Thread::wait(100);
AfdhalAtiffTan 0:74eb078d4846 26 led1 = !led1;
AfdhalAtiffTan 0:74eb078d4846 27 }
AfdhalAtiffTan 0:74eb078d4846 28 }
AfdhalAtiffTan 0:74eb078d4846 29
AfdhalAtiffTan 0:74eb078d4846 30 int main()
AfdhalAtiffTan 0:74eb078d4846 31 {
AfdhalAtiffTan 0:74eb078d4846 32 const unsigned char SLAVE = 1;
AfdhalAtiffTan 0:74eb078d4846 33 const long BAUD = 9600;
AfdhalAtiffTan 0:74eb078d4846 34 const unsigned PARITY = 'n';
AfdhalAtiffTan 0:74eb078d4846 35
AfdhalAtiffTan 0:74eb078d4846 36 startMillis(); // milliseconds (arduino like)
AfdhalAtiffTan 0:74eb078d4846 37
AfdhalAtiffTan 0:74eb078d4846 38 mbs.configure(SLAVE, BAUD, PARITY);
AfdhalAtiffTan 0:74eb078d4846 39
AfdhalAtiffTan 0:74eb078d4846 40 Thread thread(another_thread, NULL, osPriorityNormal, DEFAULT_STACK_SIZE);
AfdhalAtiffTan 0:74eb078d4846 41
AfdhalAtiffTan 0:74eb078d4846 42 //test values (updatable)
AfdhalAtiffTan 0:74eb078d4846 43 regs[MB_0] = 0xCA1F;
AfdhalAtiffTan 0:74eb078d4846 44 regs[MB_1] = 0xFACE;
AfdhalAtiffTan 0:74eb078d4846 45 regs[MB_2] = 0xC0DE;
AfdhalAtiffTan 0:74eb078d4846 46 regs[MB_3] = 0x1234;
AfdhalAtiffTan 0:74eb078d4846 47
AfdhalAtiffTan 0:74eb078d4846 48 while (true) //main thread
AfdhalAtiffTan 0:74eb078d4846 49 {
AfdhalAtiffTan 0:74eb078d4846 50 mbs.update(regs, MB_REGS); // Pass current register values to mbs
AfdhalAtiffTan 0:74eb078d4846 51 Thread::wait(10); // not too sure if this is needed
AfdhalAtiffTan 0:74eb078d4846 52 }
AfdhalAtiffTan 0:74eb078d4846 53 }