Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: X_NUCLEO_6180XA1 mbed
Fork of HelloWorld_6180XA1 by
X-Nucleo-6180XA1 Hello World Application
This application provides a simple example of usage of X_NUCLEO_6180XA1 library. It provides a measurement of:
- Ambient Light (Lux),
- Distance (millimeters) of an object in front of the on-board sensor.
The values are displayed on the Hyperterminal connected through COM port over USB.
main.cpp@8:4c05f7a5bb60, 2015-10-06 (annotated)
- Committer:
- gallonm
- Date:
- Tue Oct 06 09:09:03 2015 +0200
- Revision:
- 8:4c05f7a5bb60
- Parent:
- 7:865f0c23a183
- Child:
- 9:1d0e839edee8
Fitted the Init function to initialize the board and to prepare the measurements
Call StartMeasurement function
Added define to specify the operation mode
Range and light measure works correctly
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gallonm | 0:83c628a58feb | 1 | #include "mbed.h" |
gallonm | 8:4c05f7a5bb60 | 2 | #include "x_nucleo_6180xa1.h" |
gallonm | 0:83c628a58feb | 3 | |
gallonm | 4:ccd62fd7e137 | 4 | #include <string.h> |
gallonm | 4:ccd62fd7e137 | 5 | #include <stdlib.h> |
gallonm | 4:ccd62fd7e137 | 6 | #include <stdio.h> |
gallonm | 8:4c05f7a5bb60 | 7 | #include <assert.h> |
gallonm | 8:4c05f7a5bb60 | 8 | |
gallonm | 4:ccd62fd7e137 | 9 | |
gallonm | 5:fa65d931bd96 | 10 | #define VL6180X_I2C_SDA I2C_SDA |
gallonm | 5:fa65d931bd96 | 11 | #define VL6180X_I2C_SCL I2C_SCL |
gallonm | 5:fa65d931bd96 | 12 | |
gallonm | 8:4c05f7a5bb60 | 13 | //devo wrappare le funzioni del api.c |
gallonm | 8:4c05f7a5bb60 | 14 | //posso creare un`unica funzione che dal main chiama la misura di distanza o luce |
gallonm | 8:4c05f7a5bb60 | 15 | //gestisco all`interno della classe sensore con uno switch case e slezionare quindi la modalita di misura |
gallonm | 8:4c05f7a5bb60 | 16 | //nel main posso definire con dei define i valori (dello switch case) che permettono di selezionare le varie modalita |
gallonm | 5:fa65d931bd96 | 17 | |
gallonm | 8:4c05f7a5bb60 | 18 | #define RANGE_SINGLE_SHOT 1 |
gallonm | 8:4c05f7a5bb60 | 19 | #define ALS_SINGLE_SHOT 2 |
gallonm | 8:4c05f7a5bb60 | 20 | #define RANGE_CONTINUOUS 3 |
gallonm | 8:4c05f7a5bb60 | 21 | #define ALS_CONTINUOUS 4 |
gallonm | 8:4c05f7a5bb60 | 22 | #define RANGE_CONTINUOUS_ALS_SINGLE_SHOT 5 |
gallonm | 8:4c05f7a5bb60 | 23 | #define RANGE_SINGLE_SHOT_ALS_CONTINUOUS 6 |
gallonm | 8:4c05f7a5bb60 | 24 | #define INTERLEAVED MODE 7 |
gallonm | 5:fa65d931bd96 | 25 | |
gallonm | 4:ccd62fd7e137 | 26 | void OnErrLog(void){}; |
gallonm | 5:fa65d931bd96 | 27 | void DISP_ExecLoopBody(void){}; |
gallonm | 0:83c628a58feb | 28 | |
gallonm | 8:4c05f7a5bb60 | 29 | DevI2C device_i2c(VL6180X_I2C_SDA, VL6180X_I2C_SCL); |
gallonm | 8:4c05f7a5bb60 | 30 | static X_NUCLEO_6180XA1 *board=X_NUCLEO_6180XA1::Instance(&device_i2c); |
gallonm | 8:4c05f7a5bb60 | 31 | |
gallonm | 4:ccd62fd7e137 | 32 | int main() |
gallonm | 5:fa65d931bd96 | 33 | { |
gallonm | 8:4c05f7a5bb60 | 34 | /* |
gallonm | 8:4c05f7a5bb60 | 35 | uint8_t buf[8]={1,1,1,0,0,0,0,0}; |
gallonm | 8:4c05f7a5bb60 | 36 | |
gallonm | 5:fa65d931bd96 | 37 | uint8_t x=0xFF; |
gallonm | 5:fa65d931bd96 | 38 | uint8_t y=0xF7; |
gallonm | 5:fa65d931bd96 | 39 | uint8_t z=0x80; |
gallonm | 5:fa65d931bd96 | 40 | uint8_t k=0x17; |
gallonm | 8:4c05f7a5bb60 | 41 | uint8_t g=0xE7; |
gallonm | 5:fa65d931bd96 | 42 | |
gallonm | 5:fa65d931bd96 | 43 | //imposto GPIO di input e output |
gallonm | 5:fa65d931bd96 | 44 | device_i2c.i2c_write(&x, 0x42*2, 0x14, 1); |
gallonm | 5:fa65d931bd96 | 45 | device_i2c.i2c_write(&y, 0x42*2, 0x15, 1); |
gallonm | 5:fa65d931bd96 | 46 | //disabilito i display e abilito il GPIO0 del sensore top |
gallonm | 5:fa65d931bd96 | 47 | device_i2c.i2c_write(&z, 0x42*2, 0x12, 1); |
gallonm | 5:fa65d931bd96 | 48 | device_i2c.i2c_write(&g, 0x42*2, 0x13, 1); //spengo gpio0 |
gallonm | 5:fa65d931bd96 | 49 | device_i2c.i2c_write(&k, 0x42*2, 0x13, 1); //accendo gpio0 |
gallonm | 8:4c05f7a5bb60 | 50 | */ |
gallonm | 5:fa65d931bd96 | 51 | |
gallonm | 5:fa65d931bd96 | 52 | |
gallonm | 5:fa65d931bd96 | 53 | |
gallonm | 8:4c05f7a5bb60 | 54 | //X_NUCLEO_6180XA1 board(&device_i2c); |
gallonm | 5:fa65d931bd96 | 55 | |
gallonm | 8:4c05f7a5bb60 | 56 | board->InitBoard(); |
gallonm | 8:4c05f7a5bb60 | 57 | board->sensor_top->StartMeasurement(RANGE_SINGLE_SHOT); |
gallonm | 8:4c05f7a5bb60 | 58 | |
gallonm | 8:4c05f7a5bb60 | 59 | //board.~X_NUCLEO_6180XA1(); |
gallonm | 5:fa65d931bd96 | 60 | |
gallonm | 4:ccd62fd7e137 | 61 | } |
gallonm | 5:fa65d931bd96 | 62 | |
gallonm | 5:fa65d931bd96 | 63 | |
gallonm | 5:fa65d931bd96 | 64 |