Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BLE_API mbed nRF51822
Fork of BLE_Button by
Diff: main.cpp
- Revision:
- 9:0f6951db24f1
- Parent:
- 8:a7ba7aaba460
- Child:
- 10:7943b5c1117a
diff -r a7ba7aaba460 -r 0f6951db24f1 main.cpp
--- a/main.cpp Tue Sep 29 09:58:02 2015 +0000
+++ b/main.cpp Fri Oct 09 13:37:52 2015 +0000
@@ -25,16 +25,27 @@
const static char DEVICE_NAME[] = "Button";
static const uint16_t uuid16_list[] = {ButtonService::BUTTON_SERVICE_UUID};
+enum {
+ RELEASED = 0,
+ PRESSED,
+ IDLE
+};
+static uint8_t buttonState = IDLE;
+
ButtonService *buttonServicePtr;
void buttonPressedCallback(void)
{
- buttonServicePtr->updateButtonState(true);
+ /* Note that the buttonPressedCallback() executes in interrupt context, so it is safer to access
+ * BLE device API from the main thread. */
+ buttonState = PRESSED;
}
void buttonReleasedCallback(void)
{
- buttonServicePtr->updateButtonState(false);
+ /* Note that the buttonReleasedCallback() executes in interrupt context, so it is safer to access
+ * BLE device API from the main thread. */
+ buttonState = RELEASED;
}
void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params)
@@ -70,6 +81,11 @@
ble.gap().startAdvertising();
while (true) {
+ if (buttonState!=IDLE) {
+ buttonServicePtr->updateButtonState(buttonState);
+ buttonState = IDLE;
+ }
+
ble.waitForEvent();
}
}
