V1 test

Dependencies:   mbed X_NUCLEO_53L0A1

Revision:
0:7fa8f6402b51
Child:
1:b594314c402b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Nov 29 13:30:11 2018 +0000
@@ -0,0 +1,66 @@
+#include "mbed.h"
+#include "XNucleo53L0A1.h"
+#include <stdio.h>
+
+#define VL53L0_I2C_SDA   D14 
+#define VL53L0_I2C_SCL   D15 
+
+static XNucleo53L0A1 *board=NULL;
+
+DigitalOut led1(LED1);
+
+InterruptIn button1(USER_BUTTON);
+volatile bool button1_pressed = false; // Used in the main loop
+volatile bool button1_enabled = true; // Used for debouncing
+Timeout button1_timeout; // Used for debouncing
+
+// Enables button when bouncing is over
+void button1_enabled_cb(void)
+{
+    button1_enabled = true;
+}
+
+// ISR handling button pressed event
+void button1_onpressed_cb(void)
+{
+    if (button1_enabled) { // Disabled while the button is bouncing
+        button1_enabled = false;
+        button1_pressed = true; // To be read by the main loop
+        button1_timeout.attach(callback(button1_enabled_cb), 0.3); // Debounce time 300 ms
+    }
+}
+
+int main()
+{
+    
+    //button1.mode(PullUp); // Activate pull-up
+    button1.fall(callback(button1_onpressed_cb)); // Attach ISR to handle button press event
+
+    int idx = 0; // Just for printf below
+    int status;
+   uint32_t distance;
+
+    DevI2C *device_i2c = new DevI2C(VL53L0_I2C_SDA, VL53L0_I2C_SCL);
+    
+    /* creates the 53L0A1 expansion board singleton obj */
+    board = XNucleo53L0A1::instance(device_i2c, A2, D8, D2);
+
+    /* init the 53L0A1 expansion board with default values */
+    status = board->init_board();
+    if (status) {
+        printf("Failed to init board!\r\n");
+        return 0;
+    }
+
+   while (1) {
+        status = board->sensor_centre->get_distance(&distance);
+        if (status == VL53L0X_ERROR_NONE) {
+           printf("Distance : %ld\r\n", distance);
+        }
+        if (button1_pressed) { // Set when button is pressed
+            button1_pressed = false;
+            printf("Button pressed %d\n", idx++);
+            led1 = !led1;
+        }
+   }
+}