Update

Dependencies:   mbed mbed-rtos X_NUCLEO_IHM02A1

Committer:
scherfa2
Date:
Mon May 13 10:11:48 2019 +0000
Revision:
38:3776ee18e56f
Parent:
37:a74d377d8f74
Child:
42:0aaa3b282b6e
Buttons update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
scherfa2 34:0dee9a606869 1 #include "SETUP.h"
scherfa2 34:0dee9a606869 2
scherfa2 38:3776ee18e56f 3
scherfa2 38:3776ee18e56f 4 extern DigitalIn Button1;
scherfa2 38:3776ee18e56f 5 extern DigitalIn Button2;
scherfa2 38:3776ee18e56f 6
scherfa2 38:3776ee18e56f 7
scherfa2 38:3776ee18e56f 8 /*
hagenrap 35:758191d5c6e1 9 extern volatile bool buttonSTART_pressed; // Used in the main loop
scherfa2 34:0dee9a606869 10 extern volatile bool buttonSTART_enabled; // Used for debouncing
hagenrap 35:758191d5c6e1 11 extern Timeout buttonSTART_timeout; // Used for debouncing
scherfa2 34:0dee9a606869 12
hagenrap 35:758191d5c6e1 13 extern volatile bool buttonAbbruch_pressed; // Used in the main loop
hagenrap 35:758191d5c6e1 14 extern volatile bool buttonAbbruch_enabled; // Used for debouncing
hagenrap 35:758191d5c6e1 15 extern Timeout buttonAbbruch_timeout; // Used for debouncing
hagenrap 35:758191d5c6e1 16
scherfa2 38:3776ee18e56f 17 */
hagenrap 35:758191d5c6e1 18
scherfa2 38:3776ee18e56f 19 /* --------------------------- START_BUTTON ---------------------------------
scherfa2 34:0dee9a606869 20 // Enables button when bouncing is over
scherfa2 34:0dee9a606869 21 void buttonSTART_enabled_cb(void)
scherfa2 34:0dee9a606869 22 {
scherfa2 34:0dee9a606869 23 buttonSTART_enabled = true;
scherfa2 34:0dee9a606869 24 }
scherfa2 34:0dee9a606869 25 void buttonSTART_diable_cb(void)
scherfa2 34:0dee9a606869 26 {
scherfa2 34:0dee9a606869 27 buttonSTART_enabled = false;
scherfa2 34:0dee9a606869 28 }
scherfa2 34:0dee9a606869 29
scherfa2 34:0dee9a606869 30 // ISR handling button pressed event
scherfa2 34:0dee9a606869 31 void buttonSTART_onpressed_cb(void)
scherfa2 34:0dee9a606869 32 {
scherfa2 34:0dee9a606869 33 if (buttonSTART_enabled) { // Disabled while the button is bouncing
scherfa2 34:0dee9a606869 34 buttonSTART_enabled = false;
scherfa2 34:0dee9a606869 35 buttonSTART_pressed = true; // To be read by the main loop
scherfa2 34:0dee9a606869 36
hagenrap 37:a74d377d8f74 37 buttonSTART_timeout.attach(callback(buttonSTART_enabled_cb), 0.300); // Debounce time 300 ms
scherfa2 34:0dee9a606869 38 }
scherfa2 34:0dee9a606869 39 }
hagenrap 35:758191d5c6e1 40 /* ---------------------------------- END ----------------------------------- */
scherfa2 34:0dee9a606869 41
scherfa2 34:0dee9a606869 42
scherfa2 34:0dee9a606869 43
scherfa2 34:0dee9a606869 44
scherfa2 38:3776ee18e56f 45 /* ------------------------- ABBRUCH_BUTTON ---------------------------------
hagenrap 35:758191d5c6e1 46 // Enables button when bouncing is over
hagenrap 35:758191d5c6e1 47 void buttonAbbruch_enabled_cb(void)
hagenrap 35:758191d5c6e1 48 {
hagenrap 35:758191d5c6e1 49 buttonAbbruch_enabled = true;
hagenrap 35:758191d5c6e1 50 }
hagenrap 35:758191d5c6e1 51 void buttonAbbruch_diable_cb(void)
hagenrap 35:758191d5c6e1 52 {
hagenrap 35:758191d5c6e1 53 buttonAbbruch_enabled = false;
hagenrap 35:758191d5c6e1 54 }
hagenrap 35:758191d5c6e1 55
hagenrap 35:758191d5c6e1 56 // ISR handling button pressed event
hagenrap 35:758191d5c6e1 57 void buttonAbbruch_onpressed_cb(void)
hagenrap 35:758191d5c6e1 58 {
hagenrap 35:758191d5c6e1 59 if (buttonAbbruch_enabled) { // Disabled while the button is bouncing
hagenrap 35:758191d5c6e1 60 buttonAbbruch_enabled = false;
hagenrap 35:758191d5c6e1 61 buttonAbbruch_pressed = true; // To be read by the main loop
hagenrap 35:758191d5c6e1 62
hagenrap 37:a74d377d8f74 63 buttonAbbruch_timeout.attach(callback(buttonAbbruch_enabled_cb), 0.300); // Debounce time 300 ms
hagenrap 35:758191d5c6e1 64 }
hagenrap 35:758191d5c6e1 65 }
scherfa2 38:3776ee18e56f 66 */
scherfa2 38:3776ee18e56f 67
scherfa2 38:3776ee18e56f 68 bool get_Button_1()
scherfa2 38:3776ee18e56f 69 {
scherfa2 38:3776ee18e56f 70 if(Button1 == 1)
scherfa2 38:3776ee18e56f 71 {
scherfa2 38:3776ee18e56f 72 wait(0.01);
scherfa2 38:3776ee18e56f 73 if(Button1 == 1)
scherfa2 38:3776ee18e56f 74 {
scherfa2 38:3776ee18e56f 75 return true;
scherfa2 38:3776ee18e56f 76 }
scherfa2 38:3776ee18e56f 77 }
scherfa2 38:3776ee18e56f 78 else if(Button1 == 0)
scherfa2 38:3776ee18e56f 79 {
scherfa2 38:3776ee18e56f 80 wait(0.01);
scherfa2 38:3776ee18e56f 81 if(Button1 == 0)
scherfa2 38:3776ee18e56f 82 {
scherfa2 38:3776ee18e56f 83 return false;
scherfa2 38:3776ee18e56f 84 }
scherfa2 38:3776ee18e56f 85 }
scherfa2 38:3776ee18e56f 86 else return false;
scherfa2 38:3776ee18e56f 87 }
scherfa2 38:3776ee18e56f 88
scherfa2 38:3776ee18e56f 89 bool get_Button_2()
hagenrap 37:a74d377d8f74 90 {
hagenrap 37:a74d377d8f74 91 if(Button2 == 1)
hagenrap 37:a74d377d8f74 92 {
scherfa2 38:3776ee18e56f 93 wait(0.01);
hagenrap 37:a74d377d8f74 94 if(Button2 == 1)
hagenrap 37:a74d377d8f74 95 {
scherfa2 38:3776ee18e56f 96 return true;
hagenrap 37:a74d377d8f74 97 }
hagenrap 37:a74d377d8f74 98 }
hagenrap 37:a74d377d8f74 99 else if(Button2 == 0)
hagenrap 37:a74d377d8f74 100 {
scherfa2 38:3776ee18e56f 101 wait(0.01);
scherfa2 38:3776ee18e56f 102 if(Button2 == 0)
scherfa2 38:3776ee18e56f 103 {
scherfa2 38:3776ee18e56f 104 return false;
scherfa2 38:3776ee18e56f 105 }
hagenrap 37:a74d377d8f74 106 }
scherfa2 38:3776ee18e56f 107 else return false;
scherfa2 38:3776ee18e56f 108 }
scherfa2 38:3776ee18e56f 109
hagenrap 35:758191d5c6e1 110 /* ---------------------------------- END ----------------------------------- */
hagenrap 35:758191d5c6e1 111