Sweep a servo according to Proximity sensor measure

Dependencies:   Servo X_NUCLEO_6180XA1 mbed

Fork of HelloWorld_6180XA1 by ST

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?

UserRevisionLine numberNew 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