New group

Dependencies:   mbed

Fork of TAIST_modbus by Supachai Vorapojpisut

Committer:
nengzix
Date:
Wed Mar 14 14:56:40 2018 +0000
Revision:
22:fcde97240c38
Parent:
18:47f0da1f232b
remove print

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);
nengzix 9:4ddee8c61bad 7
SaiiPruttapon 8:5c3395345dc1 8 Ticker ticker;
vsupacha 0:f306cb0263a6 9
nengzix 7:774c2b305d2d 10 int cunt_pressed = 0;
nengzix 7:774c2b305d2d 11 int cunt_released = 0;
fzaq 6:5bb5238f2f6e 12 int x,y;
SaiiPruttapon 1:f84cb7cea5ea 13
vsupacha 0:f306cb0263a6 14 void serial_callback()
vsupacha 0:f306cb0263a6 15 {
nengzix 11:316c0fb5423b 16 //Test with :000300000000FD for register 0
nengzix 11:316c0fb5423b 17 //Test with :000301000000FC for register 1
vsupacha 0:f306cb0263a6 18 uint8_t frame[6];
vsupacha 0:f306cb0263a6 19 char ch = pc.getc();
nengzix 9:4ddee8c61bad 20 if(modbus_parser(ch, frame)){
nengzix 16:02568a44616b 21 modbus_gen(frame);
nengzix 9:4ddee8c61bad 22 }
vsupacha 0:f306cb0263a6 23 }
SaiiPruttapon 4:f6bce90e2872 24
fzaq 17:98631c9faf5f 25 void released_cunt()
fzaq 17:98631c9faf5f 26 {
fzaq 17:98631c9faf5f 27 cunt_released = cunt_released+1;
fzaq 18:47f0da1f232b 28 cunt_pressed = 0;
fzaq 17:98631c9faf5f 29 }
fzaq 17:98631c9faf5f 30
fzaq 17:98631c9faf5f 31 void pressed_cunt()
fzaq 17:98631c9faf5f 32 {
fzaq 17:98631c9faf5f 33 cunt_pressed = cunt_pressed+1;
fzaq 18:47f0da1f232b 34 cunt_released = 0;
fzaq 17:98631c9faf5f 35 }
fzaq 17:98631c9faf5f 36
SaiiPruttapon 1:f84cb7cea5ea 37 void pressed()
SaiiPruttapon 1:f84cb7cea5ea 38 {
fzaq 6:5bb5238f2f6e 39 if(cunt_released != 0)
SaiiPruttapon 5:843e67c675c1 40 {
SaiiPruttapon 5:843e67c675c1 41 y = cunt_released;
fzaq 6:5bb5238f2f6e 42 modbus_update(0, y);
nengzix 22:fcde97240c38 43 // printf("released = %.1f sec\n",modbus_read(0)*0.1);
SaiiPruttapon 5:843e67c675c1 44 }
SaiiPruttapon 8:5c3395345dc1 45 if(button==0){
fzaq 17:98631c9faf5f 46 ticker.attach(callback(&pressed_cunt),0.1);
SaiiPruttapon 4:f6bce90e2872 47 }
SaiiPruttapon 1:f84cb7cea5ea 48 }
SaiiPruttapon 1:f84cb7cea5ea 49
SaiiPruttapon 1:f84cb7cea5ea 50 void released()
SaiiPruttapon 1:f84cb7cea5ea 51 {
fzaq 6:5bb5238f2f6e 52 if(cunt_pressed != 0)
SaiiPruttapon 5:843e67c675c1 53 {
SaiiPruttapon 5:843e67c675c1 54 x = cunt_pressed;
fzaq 6:5bb5238f2f6e 55 modbus_update(1, x);
nengzix 22:fcde97240c38 56 // printf("pressed = %.1f sec\n",modbus_read(1)*0.1);
SaiiPruttapon 5:843e67c675c1 57 }
SaiiPruttapon 8:5c3395345dc1 58 if(button==1){
fzaq 17:98631c9faf5f 59 ticker.attach(callback(&released_cunt),0.1);
SaiiPruttapon 5:843e67c675c1 60 }
SaiiPruttapon 1:f84cb7cea5ea 61 }
SaiiPruttapon 1:f84cb7cea5ea 62
vsupacha 0:f306cb0263a6 63 int main() {
vsupacha 0:f306cb0263a6 64 // setup code
vsupacha 0:f306cb0263a6 65 pc.attach(serial_callback);
SaiiPruttapon 1:f84cb7cea5ea 66
vsupacha 0:f306cb0263a6 67 // 1. button code
fzaq 6:5bb5238f2f6e 68 button.mode(PullNone);
SaiiPruttapon 1:f84cb7cea5ea 69 button.fall(&pressed);
SaiiPruttapon 1:f84cb7cea5ea 70 button.rise(&released);
SaiiPruttapon 1:f84cb7cea5ea 71
vsupacha 0:f306cb0263a6 72 // 2. timer code
SaiiPruttapon 8:5c3395345dc1 73 Ticker ticker;
SaiiPruttapon 8:5c3395345dc1 74
SaiiPruttapon 8:5c3395345dc1 75
vsupacha 0:f306cb0263a6 76 while(1) {
vsupacha 0:f306cb0263a6 77 // loop code
vsupacha 0:f306cb0263a6 78 myled = 1; // LED is ON
vsupacha 0:f306cb0263a6 79 wait(0.2); // 200 ms
vsupacha 0:f306cb0263a6 80 myled = 0; // LED is OFF
vsupacha 0:f306cb0263a6 81 wait(1.0); // 1 sec
vsupacha 0:f306cb0263a6 82 }
vsupacha 0:f306cb0263a6 83 }