New group

Dependencies:   mbed

Fork of TAIST_modbus by Supachai Vorapojpisut

Committer:
fzaq
Date:
Wed Mar 14 08:30:53 2018 +0000
Revision:
6:5bb5238f2f6e
Parent:
5:843e67c675c1
Child:
7:774c2b305d2d
time2

Who changed what in which revision?

UserRevisionLine numberNew 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);
SaiiPruttapon 1:f84cb7cea5ea 5 InterruptIn button(USER_BUTTON);
vsupacha 0:f306cb0263a6 6 RawSerial pc(USBTX, USBRX);
vsupacha 0:f306cb0263a6 7
fzaq 6:5bb5238f2f6e 8 int cunt_pressed = 0.0;
fzaq 6:5bb5238f2f6e 9 int cunt_released = 0.0;
fzaq 6:5bb5238f2f6e 10 int x,y;
SaiiPruttapon 1:f84cb7cea5ea 11
vsupacha 0:f306cb0263a6 12 void serial_callback()
vsupacha 0:f306cb0263a6 13 {
vsupacha 0:f306cb0263a6 14 uint8_t frame[6];
vsupacha 0:f306cb0263a6 15 char ch = pc.getc();
SaiiPruttapon 1:f84cb7cea5ea 16 if (modbus_parser(ch, frame)) {
vsupacha 0:f306cb0263a6 17 }
vsupacha 0:f306cb0263a6 18 }
SaiiPruttapon 4:f6bce90e2872 19
SaiiPruttapon 1:f84cb7cea5ea 20 void pressed()
SaiiPruttapon 1:f84cb7cea5ea 21 {
fzaq 6:5bb5238f2f6e 22 if(cunt_released != 0)
SaiiPruttapon 5:843e67c675c1 23 {
SaiiPruttapon 5:843e67c675c1 24 y = cunt_released;
fzaq 6:5bb5238f2f6e 25 modbus_update(0, y);
fzaq 6:5bb5238f2f6e 26 pc.printf("released = %d\n",y);
fzaq 6:5bb5238f2f6e 27 pc.printf("released = %d\n",modbus_read(0));
SaiiPruttapon 5:843e67c675c1 28 cunt_released = 0;
SaiiPruttapon 5:843e67c675c1 29 }
fzaq 6:5bb5238f2f6e 30 while(button==0){
fzaq 6:5bb5238f2f6e 31 cunt_pressed = cunt_pressed+1;
SaiiPruttapon 5:843e67c675c1 32 wait(0.1);
SaiiPruttapon 4:f6bce90e2872 33 }
SaiiPruttapon 1:f84cb7cea5ea 34 }
SaiiPruttapon 1:f84cb7cea5ea 35
SaiiPruttapon 1:f84cb7cea5ea 36 void released()
SaiiPruttapon 1:f84cb7cea5ea 37 {
fzaq 6:5bb5238f2f6e 38 if(cunt_pressed != 0)
SaiiPruttapon 5:843e67c675c1 39 {
SaiiPruttapon 5:843e67c675c1 40 x = cunt_pressed;
fzaq 6:5bb5238f2f6e 41 modbus_update(1, x);
fzaq 6:5bb5238f2f6e 42 pc.printf("pressed = %d\n",x);
fzaq 6:5bb5238f2f6e 43 pc.printf("pressed = %d\n",modbus_read(1));
SaiiPruttapon 5:843e67c675c1 44 cunt_pressed = 0;
SaiiPruttapon 5:843e67c675c1 45 }
fzaq 6:5bb5238f2f6e 46 while(button==1){
fzaq 6:5bb5238f2f6e 47 cunt_released = cunt_released+1;
SaiiPruttapon 5:843e67c675c1 48 wait(0.1);
SaiiPruttapon 5:843e67c675c1 49 }
SaiiPruttapon 1:f84cb7cea5ea 50 }
SaiiPruttapon 1:f84cb7cea5ea 51
vsupacha 0:f306cb0263a6 52 int main() {
vsupacha 0:f306cb0263a6 53 // setup code
vsupacha 0:f306cb0263a6 54 pc.attach(serial_callback);
SaiiPruttapon 1:f84cb7cea5ea 55
vsupacha 0:f306cb0263a6 56 // 1. button code
fzaq 6:5bb5238f2f6e 57 button.mode(PullNone);
SaiiPruttapon 1:f84cb7cea5ea 58 button.fall(&pressed);
SaiiPruttapon 1:f84cb7cea5ea 59 button.rise(&released);
SaiiPruttapon 1:f84cb7cea5ea 60
vsupacha 0:f306cb0263a6 61 // 2. timer code
vsupacha 0:f306cb0263a6 62 while(1) {
vsupacha 0:f306cb0263a6 63 // loop code
vsupacha 0:f306cb0263a6 64 myled = 1; // LED is ON
vsupacha 0:f306cb0263a6 65 wait(0.2); // 200 ms
vsupacha 0:f306cb0263a6 66 myled = 0; // LED is OFF
vsupacha 0:f306cb0263a6 67 wait(1.0); // 1 sec
vsupacha 0:f306cb0263a6 68 }
vsupacha 0:f306cb0263a6 69 }