Sample Program for Maker Faire Tokyo 2017
Dependencies: X_NUCLEO_6180XA1 mbed
Fork of HelloWorld_6180XA1 by
main.cpp@47:04733a0905ba, 2017-03-13 (annotated)
- Committer:
- Davidroid
- Date:
- Mon Mar 13 19:21:16 2017 +0000
- Revision:
- 47:04733a0905ba
- Parent:
- 44:3c68d5aa842e
- Child:
- 48:5f6dbaa777ea
Aligned to ARM mbed coding style.
Who changed what in which revision?
User | Revision | Line number | New 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 | } |