added I2C control function (Original program cannot handle I2C constructor)
Dependencies: TextLCD X_NUCLEO_53L0A1
Fork of HelloWorld_53L0A1 by
main.cpp
- Committer:
- johnAlexander
- Date:
- 2016-12-01
- Revision:
- 3:b3f70617a6b3
- Parent:
- 1:3483e701ec59
- Child:
- 4:c8932fb926d6
File content as of revision 3:b3f70617a6b3:
#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 */ #define VL53L0_I2C_SDA D14 #define VL53L0_I2C_SCL D15 static X_NUCLEO_53L0A1 *board=NULL; /*=================================== Main ================================== =============================================================================*/ int main() { int status; uint32_t distance; 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); } }