
New group
Fork of TAIST_modbus by
main.cpp@6:5bb5238f2f6e, 2018-03-14 (annotated)
- 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?
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); |
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 | } |