Heart Rate Monitor example for the BLE API using nRF51822 native mode drivers

Dependencies:   BLE_API mbed nRF51822 X_NUCLEO_IDB0XA1

Fork of BLE_HeartRate by Bluetooth Low Energy

Revision:
73:49b6090478e2
Parent:
72:99c283dfe28d
Child:
74:c9d58e7847c4
--- a/main.cpp	Mon Nov 02 09:49:57 2015 +0000
+++ b/main.cpp	Mon Nov 02 10:11:26 2015 +0000
@@ -20,7 +20,6 @@
 #include "ble/services/BatteryService.h"
 #include "ble/services/DeviceInformationService.h"
 
-BLE  ble;
 DigitalOut led1(LED1);
 
 const static char     DEVICE_NAME[]        = "HRM1";
@@ -35,7 +34,7 @@
 
 void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params)
 {
-    ble.gap().startAdvertising(); // restart advertising
+    BLE::Instance(BLE::DEFAULT_INSTANCE).gap().startAdvertising(); // restart advertising
 }
 
 void periodicCallback(void)
@@ -77,8 +76,13 @@
     Ticker ticker;
     ticker.attach(periodicCallback, 1); // blink LED every second
 
+    BLE& ble = BLE::Instance(BLE::DEFAULT_INSTANCE);
     ble.init(bleInitComplete);
 
+    /* SpinWait for initialization to complete. This is necessary because the
+     * BLE object is used in the main loop below. */
+    while (ble.hasInitialized()) { /* spin loop */ }
+
     // infinite loop
     while (1) {
         // check for trigger from periodicCallback()