![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Example code for modbus serial
main.cpp@0:f306cb0263a6, 2018-03-14 (annotated)
- Committer:
- vsupacha
- Date:
- Wed Mar 14 06:17:48 2018 +0000
- Revision:
- 0:f306cb0263a6
- Child:
- 1:0007712e84a8
Code example for Lab 7
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vsupacha | 0:f306cb0263a6 | 1 | #include "mbed.h" |
vsupacha | 0:f306cb0263a6 | 2 | #include "modbus.h" |
vsupacha | 0:f306cb0263a6 | 3 | |
vsupacha | 0:f306cb0263a6 | 4 | DigitalOut myled(LED1); |
vsupacha | 0:f306cb0263a6 | 5 | RawSerial pc(USBTX, USBRX); |
vsupacha | 0:f306cb0263a6 | 6 | |
vsupacha | 0:f306cb0263a6 | 7 | void serial_callback() |
vsupacha | 0:f306cb0263a6 | 8 | { |
vsupacha | 0:f306cb0263a6 | 9 | uint8_t frame[6]; |
vsupacha | 0:f306cb0263a6 | 10 | |
vsupacha | 0:f306cb0263a6 | 11 | char ch = pc.getc(); |
vsupacha | 0:f306cb0263a6 | 12 | if (modbus_parser(ch, frame)) { |
vsupacha | 0:f306cb0263a6 | 13 | |
vsupacha | 0:f306cb0263a6 | 14 | } |
vsupacha | 0:f306cb0263a6 | 15 | } |
vsupacha | 0:f306cb0263a6 | 16 | |
vsupacha | 0:f306cb0263a6 | 17 | int main() { |
vsupacha | 0:f306cb0263a6 | 18 | // setup code |
vsupacha | 0:f306cb0263a6 | 19 | pc.attach(serial_callback); |
vsupacha | 0:f306cb0263a6 | 20 | // 1. button code |
vsupacha | 0:f306cb0263a6 | 21 | // 2. timer code |
vsupacha | 0:f306cb0263a6 | 22 | while(1) { |
vsupacha | 0:f306cb0263a6 | 23 | // loop code |
vsupacha | 0:f306cb0263a6 | 24 | myled = 1; // LED is ON |
vsupacha | 0:f306cb0263a6 | 25 | wait(0.2); // 200 ms |
vsupacha | 0:f306cb0263a6 | 26 | myled = 0; // LED is OFF |
vsupacha | 0:f306cb0263a6 | 27 | wait(1.0); // 1 sec |
vsupacha | 0:f306cb0263a6 | 28 | } |
vsupacha | 0:f306cb0263a6 | 29 | } |