Programme de mesure de distance avec capteur ToF

Dependencies:   mbed VL53L0X

Revision:
0:8da34e10e9f8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Apr 11 11:20:38 2019 +0000
@@ -0,0 +1,48 @@
+#include "VL53L0X.h"
+#include "mbed.h"
+
+DevI2C i2C(PB_9, PB_8);
+DigitalOut Pin_Out(PB_9);
+VL53L0X capteur(&i2C, &Pin_Out, PA_8, VL53L0X_DEFAULT_ADDRESS);
+VL53L0X_Dev_t MyDevice;
+VL53L0X_Dev_t *pMyDevice = &MyDevice;
+int distance(uint32_t *p_data);
+
+int main(){
+    uint32_t status = 0;
+    uint32_t *dist;
+    
+    printf("\n\r");
+    printf("\n\r");
+    //pMyDevice->comms_type = 1;
+    //pMyDevice->comms_speed_khz = 400;
+
+    capteur.init_sensor(VL53L0X_DEFAULT_ADDRESS);
+    //capteur.disable_interrupt_measure_detection_irq();
+    while(1){
+        status = distance(dist);
+        printf("Distance : %d mm\n\r", *dist);
+        printf("Statut : %d \n\r", status);
+        printf("\n");
+        wait(0.2);
+    }
+    capteur.VL53L0X_off();
+}
+
+int distance(uint32_t *p_data){
+    int status = 0;
+    VL53L0X_RangingMeasurementData_t measurement_data;
+
+    status = capteur.start_measurement(range_single_shot_polling, NULL);
+    if (!status) {
+        status = capteur.get_measurement(range_single_shot_polling, &measurement_data);
+    }
+    if (measurement_data.RangeStatus == 0) {
+        *p_data = measurement_data.RangeMilliMeter;
+    } else {
+        *p_data = 0;
+        status = VL53L0X_ERROR_RANGE_ERROR;
+    }
+    capteur.stop_measurement(range_single_shot_polling);
+    return status;
+}
\ No newline at end of file