Simple Ranging Example, using Expansion Board Sensor, driven via Interrupts.
Dependencies: mbed X_NUCLEO_53L1A1_mbed
Diff: main.cpp
- Revision:
- 4:c8932fb926d6
- Parent:
- 3:b3f70617a6b3
- Child:
- 7:c8087e7333b8
- Child:
- 8:68bf94ebf252
--- a/main.cpp Thu Dec 01 14:19:01 2016 +0000 +++ b/main.cpp Mon Dec 05 13:39:05 2016 +0000 @@ -1,23 +1,9 @@ #include "mbed.h" #include "x_nucleo_53l0a1.h" -#include <string.h> -#include <stdlib.h> #include <stdio.h> -#include <assert.h> /* This VL53L0X Expansion board test application performs a range measurement in polling mode - on the onboard embedded top sensor. - The measured data is displayed on the on-board 4-digit display. - - User Blue button stops the current measurement and the entire program, releasing all resources. - Reset button is used to restart the program. */ - -/* Polling operating modes don`t require callback function that handles IRQ - Callback IRQ functions are used only for measure that require interrupt */ - -/* GetMeasurement is asynchronous! It returns NOT_READY if the measurement value - is not ready to be read from the corresponding register. So you need to wait - for the result to be ready */ + on the onboard embedded top sensor. */ #define VL53L0_I2C_SDA D14 #define VL53L0_I2C_SCL D15 @@ -29,20 +15,24 @@ =============================================================================*/ int main() { - int status; - uint32_t distance; - DevI2C *device_i2c =new DevI2C(VL53L0_I2C_SDA, VL53L0_I2C_SCL); + int status; + uint32_t distance; - /* creates the 53L0A1 expansion board singleton obj */ - board=X_NUCLEO_53L0A1::Instance(device_i2c, A2, D8, D2); + DevI2C *device_i2c =new DevI2C(VL53L0_I2C_SDA, VL53L0_I2C_SCL); + + /* creates the 53L0A1 expansion board singleton obj */ + board=X_NUCLEO_53L0A1::Instance(device_i2c, A2, D8, D2); - /* init the 53L0A1 expansion board with default values */ - status=board->InitBoard(); - if(status) { printf("Failed to init board!\n\r"); return 0; } - while(1) - { - board->sensor_centre->GetDistance(&distance); - printf("Distance : %ld\n", distance); - } + /* init the 53L0A1 expansion board with default values */ + status=board->InitBoard(); + if(status) { printf("Failed to init board!\n\r"); return 0; } + + while(1) + { + status = board->sensor_centre->GetDistance(&distance); + if (status == VL53L0X_ERROR_NONE) + printf("Distance : %ld\n", distance); + } + }