V1 test
Dependencies: mbed X_NUCLEO_53L0A1
Revision 0:7fa8f6402b51, committed 2018-11-29
- Comitter:
- lcouturier
- Date:
- Thu Nov 29 13:30:11 2018 +0000
- Child:
- 1:b594314c402b
- Commit message:
- V1;
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/X_NUCLEO_53L0A1.lib Thu Nov 29 13:30:11 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/teams/ST/code/X_NUCLEO_53L0A1/#99c367e8a402
--- /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;
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Nov 29 13:30:11 2018 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/235179ab3f27 \ No newline at end of file