![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
New group
Fork of TAIST_modbus by
main.cpp@22:fcde97240c38, 2018-03-14 (annotated)
- 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?
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); |
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 | } |