21/02/18 definitivo

Dependencies:   X_NUCLEO_6180XA1 mbed

Fork of HelloWorld_6180XA1 by ST

Committer:
nikapov
Date:
Mon Aug 21 15:45:25 2017 +0000
Revision:
49:bcdd2adea662
Parent:
47:04733a0905ba
Child:
48:256ae4ed9674
Update libs.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Davidroid 47:04733a0905ba 1 /*
Davidroid 47:04733a0905ba 2 This VL6180X Expansion board test application performs a range measurement
Davidroid 47:04733a0905ba 3 and als measurement in polling mode on the onboard embedded top sensor.
Davidroid 47:04733a0905ba 4 The result of both the measures are printed on the serial over.
Davidroid 47:04733a0905ba 5 get_distance() and get_lux() are synchronous! They block the caller until the
Davidroid 47:04733a0905ba 6 result will be ready.
Davidroid 47:04733a0905ba 7 */
Davidroid 47:04733a0905ba 8
Davidroid 47:04733a0905ba 9
Davidroid 47:04733a0905ba 10 /* Includes ------------------------------------------------------------------*/
Davidroid 47:04733a0905ba 11
gallonm 0:83c628a58feb 12 #include "mbed.h"
Davidroid 47:04733a0905ba 13 #include "XNucleo6180XA1.h"
gallonm 4:ccd62fd7e137 14 #include <string.h>
gallonm 4:ccd62fd7e137 15 #include <stdlib.h>
gallonm 4:ccd62fd7e137 16 #include <stdio.h>
gallonm 8:4c05f7a5bb60 17 #include <assert.h>
gallonm 8:4c05f7a5bb60 18
Davidroid 47:04733a0905ba 19
Davidroid 47:04733a0905ba 20 /* Definitions ---------------------------------------------------------------*/
gallonm 20:b2e0b41a0e6b 21
mapellil 37:724632fff9c1 22 #define VL6180X_I2C_SDA D14
mapellil 37:724632fff9c1 23 #define VL6180X_I2C_SCL D15
gallonm 5:fa65d931bd96 24
Davidroid 47:04733a0905ba 25
Davidroid 47:04733a0905ba 26 /* Variables -----------------------------------------------------------------*/
Davidroid 47:04733a0905ba 27
Davidroid 47:04733a0905ba 28 static XNucleo6180XA1 *board = NULL;
Davidroid 47:04733a0905ba 29
Davidroid 47:04733a0905ba 30
Davidroid 47:04733a0905ba 31 /* Functions -----------------------------------------------------------------*/
licio.mapelli@st.com 32:724d2afb0ca2 32
mapellil 35:8b4a5cc0fb1f 33 /*=================================== Main ==================================
mapellil 44:3c68d5aa842e 34 Prints on the serial over USB the measured distance and lux.
mapellil 44:3c68d5aa842e 35 The measures are run in single shot polling mode.
mapellil 35:8b4a5cc0fb1f 36 =============================================================================*/
mapellil 35:8b4a5cc0fb1f 37 int main()
mapellil 43:f03152407731 38 {
Davidroid 47:04733a0905ba 39 int status;
Davidroid 47:04733a0905ba 40 uint32_t lux, dist;
Davidroid 47:04733a0905ba 41 DevI2C *device_i2c = new DevI2C(VL6180X_I2C_SDA, VL6180X_I2C_SCL);
Davidroid 47:04733a0905ba 42
Davidroid 47:04733a0905ba 43 /* Creates the 6180XA1 expansion board singleton obj. */
Davidroid 47:04733a0905ba 44 board = XNucleo6180XA1::instance(device_i2c, A3, A2, D13, D2);
Davidroid 47:04733a0905ba 45
Davidroid 47:04733a0905ba 46 /* Initializes the 6180XA1 expansion board with default values. */
Davidroid 47:04733a0905ba 47 status = board->init_board();
Davidroid 47:04733a0905ba 48 if (status) {
Davidroid 47:04733a0905ba 49 printf("Failed to init board!\n\r");
Davidroid 47:04733a0905ba 50 return 0;
Davidroid 47:04733a0905ba 51 }
Davidroid 47:04733a0905ba 52
Davidroid 47:04733a0905ba 53 while (true) {
Davidroid 47:04733a0905ba 54 board->sensor_top->get_distance(&dist);
Davidroid 47:04733a0905ba 55 board->sensor_top->get_lux(&lux);
Davidroid 47:04733a0905ba 56 printf ("Distance: %d, Lux: %d\n\r", dist, lux);
Davidroid 47:04733a0905ba 57 }
gallonm 4:ccd62fd7e137 58 }