INSAT Mini Project

Dependencies:   ST_INTERFACES X_NUCLEO_COMMON

Fork of X_NUCLEO_6180XA1 by ST

Committer:
gallonm
Date:
Mon Nov 02 14:02:53 2015 +0100
Revision:
24:025afc3fe30f
Parent:
23:dfb5ccc7b780
Child:
27:22c6f69967d9
Modified file cfg.h by introducing #define EXTENDED_RANGE_50CM.
Settled StartMeasurement by removing MeasureData_t from parameters.
Settled range single shot measure and als single shot measure.
Settled GetMeasurement by introducing range_single_shot case and als_single_shot case.
Settled VL6180x_AlsSetThresholds by introducing the computation in order to pass
the arguments in lux and write the same arguments in raw device value into registers.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gallonm 0:1fb1f010ac84 1 /**
gallonm 0:1fb1f010ac84 2 ******************************************************************************
gallonm 0:1fb1f010ac84 3 * @file x_nucleo_6180xa1.h
gallonm 0:1fb1f010ac84 4 * @author AST / EST
gallonm 0:1fb1f010ac84 5 * @version V0.0.1
gallonm 0:1fb1f010ac84 6 * @date 13-April-2015
gallonm 0:1fb1f010ac84 7 * @brief Header file for class X_NUCLEO_6180XA1 representing a X-NUCLEO-6180XA1
gallonm 0:1fb1f010ac84 8 * expansion board
gallonm 0:1fb1f010ac84 9 ******************************************************************************
gallonm 0:1fb1f010ac84 10 * @attention
gallonm 0:1fb1f010ac84 11 *
gallonm 0:1fb1f010ac84 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
gallonm 0:1fb1f010ac84 13 *
gallonm 0:1fb1f010ac84 14 * Redistribution and use in source and binary forms, with or without modification,
gallonm 0:1fb1f010ac84 15 * are permitted provided that the following conditions are met:
gallonm 0:1fb1f010ac84 16 * 1. Redistributions of source code must retain the above copyright notice,
gallonm 0:1fb1f010ac84 17 * this list of conditions and the following disclaimer.
gallonm 0:1fb1f010ac84 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
gallonm 0:1fb1f010ac84 19 * this list of conditions and the following disclaimer in the documentation
gallonm 0:1fb1f010ac84 20 * and/or other materials provided with the distribution.
gallonm 0:1fb1f010ac84 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
gallonm 0:1fb1f010ac84 22 * may be used to endorse or promote products derived from this software
gallonm 0:1fb1f010ac84 23 * without specific prior written permission.
gallonm 0:1fb1f010ac84 24 *
gallonm 0:1fb1f010ac84 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
gallonm 0:1fb1f010ac84 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
gallonm 0:1fb1f010ac84 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
gallonm 0:1fb1f010ac84 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
gallonm 0:1fb1f010ac84 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
gallonm 0:1fb1f010ac84 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
gallonm 0:1fb1f010ac84 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
gallonm 0:1fb1f010ac84 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
gallonm 0:1fb1f010ac84 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
gallonm 0:1fb1f010ac84 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
gallonm 0:1fb1f010ac84 35 *
gallonm 0:1fb1f010ac84 36 ******************************************************************************
gallonm 0:1fb1f010ac84 37 */
gallonm 0:1fb1f010ac84 38
gallonm 0:1fb1f010ac84 39 /* Define to prevent from recursive inclusion --------------------------------*/
gallonm 0:1fb1f010ac84 40 #ifndef __X_NUCLEO_6180XA1_H
gallonm 0:1fb1f010ac84 41 #define __X_NUCLEO_6180XA1_H
gallonm 0:1fb1f010ac84 42
gallonm 0:1fb1f010ac84 43 /* Includes ------------------------------------------------------------------*/
gallonm 0:1fb1f010ac84 44 #include "mbed.h"
gallonm 0:1fb1f010ac84 45 #include "vl6180x_class.h"
gallonm 16:0d4776564733 46 #include "Display_class.h"
gallonm 18:c98aa73dc4a5 47 #include "stmpe1600_class.h"
gallonm 0:1fb1f010ac84 48 #include "DevI2C.h"
gallonm 0:1fb1f010ac84 49
gallonm 15:454710d17358 50 /** New device addresses */
gallonm 10:4954b09b72d8 51 #define NEW_SENSOR_TOP_ADDRESS 0x10
gallonm 15:454710d17358 52 #define NEW_SENSOR_BOTTOM_ADDRESS 0x11
gallonm 15:454710d17358 53 #define NEW_SENSOR_LEFT_ADDRESS 0x12
gallonm 15:454710d17358 54 #define NEW_SENSOR_RIGHT_ADDRESS 0x13
gallonm 10:4954b09b72d8 55
gallonm 4:a5abf7757947 56 /* Classes--------------------------------------------------------------------*/
gallonm 0:1fb1f010ac84 57
gallonm 10:4954b09b72d8 58 class X_NUCLEO_6180XA1
gallonm 4:a5abf7757947 59 {
gallonm 16:0d4776564733 60 public:
gallonm 16:0d4776564733 61 X_NUCLEO_6180XA1(DevI2C *ext_i2c) : dev_i2c(ext_i2c)
gallonm 10:4954b09b72d8 62 {
gallonm 16:0d4776564733 63 digit1=new STMPE1600DigiOut(*dev_i2c, GPIO_7);
gallonm 16:0d4776564733 64 digit2=new STMPE1600DigiOut(*dev_i2c, GPIO_8);
gallonm 16:0d4776564733 65 digit3=new STMPE1600DigiOut(*dev_i2c, GPIO_9);
gallonm 16:0d4776564733 66 digit4=new STMPE1600DigiOut(*dev_i2c, GPIO_10);
gallonm 16:0d4776564733 67
gallonm 16:0d4776564733 68 dispA=new STMPE1600DigiOut(*dev_i2c, GPIO_0);
gallonm 16:0d4776564733 69 dispB=new STMPE1600DigiOut(*dev_i2c, GPIO_1);
gallonm 16:0d4776564733 70 dispC=new STMPE1600DigiOut(*dev_i2c, GPIO_2);
gallonm 16:0d4776564733 71 dispD=new STMPE1600DigiOut(*dev_i2c, GPIO_3);
gallonm 16:0d4776564733 72 dispE=new STMPE1600DigiOut(*dev_i2c, GPIO_4);
gallonm 16:0d4776564733 73 dispF=new STMPE1600DigiOut(*dev_i2c, GPIO_5);
gallonm 16:0d4776564733 74 dispG=new STMPE1600DigiOut(*dev_i2c, GPIO_6);
gallonm 16:0d4776564733 75 //display=new Display(*digit1,*digit2,*digit3,*digit4,*dispA,*dispB,*dispC,*dispD,*dispE,*dispF,*dispG);
gallonm 16:0d4776564733 76 display=new Display(*ext_i2c);
gallonm 16:0d4776564733 77
gallonm 16:0d4776564733 78 gpio0_top=new STMPE1600DigiOut(*dev_i2c, GPIO_12);
gallonm 16:0d4776564733 79 sensor_top=new VL6180X(*dev_i2c, *gpio0_top, PB_0);
gallonm 16:0d4776564733 80
gallonm 16:0d4776564733 81 gpio0_bottom=new STMPE1600DigiOut(*dev_i2c, GPIO_13);
gallonm 16:0d4776564733 82 sensor_bottom=new VL6180X(*dev_i2c, *gpio0_bottom, PA_4);
gallonm 16:0d4776564733 83
gallonm 16:0d4776564733 84 gpio0_left=new STMPE1600DigiOut(*dev_i2c, GPIO_14);
gallonm 16:0d4776564733 85 sensor_left=new VL6180X(*dev_i2c, *gpio0_left, PA_5);
gallonm 16:0d4776564733 86
gallonm 16:0d4776564733 87 gpio0_right=new STMPE1600DigiOut(*dev_i2c, GPIO_15);
gallonm 16:0d4776564733 88 sensor_right=new VL6180X(*dev_i2c, *gpio0_right, PA_10);
gallonm 16:0d4776564733 89 }
gallonm 4:a5abf7757947 90
gallonm 16:0d4776564733 91 ~X_NUCLEO_6180XA1()
gallonm 10:4954b09b72d8 92 {
gallonm 16:0d4776564733 93 if(gpio0_top!=NULL)
gallonm 16:0d4776564733 94 {
gallonm 16:0d4776564733 95 delete gpio0_top;
gallonm 16:0d4776564733 96 gpio0_top=NULL;
gallonm 16:0d4776564733 97 }
gallonm 16:0d4776564733 98 if(sensor_top!=NULL)
gallonm 16:0d4776564733 99 {
gallonm 16:0d4776564733 100 delete sensor_top;
gallonm 16:0d4776564733 101 sensor_top=NULL;
gallonm 16:0d4776564733 102 }
gallonm 16:0d4776564733 103 if(gpio0_bottom!=NULL)
gallonm 16:0d4776564733 104 {
gallonm 16:0d4776564733 105 delete gpio0_bottom;
gallonm 16:0d4776564733 106 gpio0_bottom=NULL;
gallonm 16:0d4776564733 107 }
gallonm 16:0d4776564733 108 if(sensor_bottom!=NULL)
gallonm 16:0d4776564733 109 {
gallonm 16:0d4776564733 110 delete sensor_bottom;
gallonm 16:0d4776564733 111 sensor_bottom=NULL;
gallonm 16:0d4776564733 112 }
gallonm 16:0d4776564733 113 if(gpio0_left!=NULL)
gallonm 16:0d4776564733 114 {
gallonm 16:0d4776564733 115 delete gpio0_left;
gallonm 16:0d4776564733 116 gpio0_left=NULL;
gallonm 16:0d4776564733 117 }
gallonm 16:0d4776564733 118 if(sensor_left!=NULL)
gallonm 16:0d4776564733 119 {
gallonm 16:0d4776564733 120 delete sensor_left;
gallonm 16:0d4776564733 121 sensor_left=NULL;
gallonm 16:0d4776564733 122 }
gallonm 16:0d4776564733 123 if(gpio0_right!=NULL)
gallonm 16:0d4776564733 124 {
gallonm 16:0d4776564733 125 delete gpio0_right;
gallonm 16:0d4776564733 126 gpio0_right=NULL;
gallonm 16:0d4776564733 127 }
gallonm 16:0d4776564733 128 if(sensor_right!=NULL)
gallonm 16:0d4776564733 129 {
gallonm 16:0d4776564733 130 delete sensor_right;
gallonm 16:0d4776564733 131 sensor_right=NULL;
gallonm 16:0d4776564733 132 }
gallonm 22:1a6327e9a7e6 133 delete digit1;
gallonm 22:1a6327e9a7e6 134 delete digit2;
gallonm 22:1a6327e9a7e6 135 delete digit3;
gallonm 22:1a6327e9a7e6 136 delete digit4;
gallonm 22:1a6327e9a7e6 137 delete dispA;
gallonm 22:1a6327e9a7e6 138 delete dispB;
gallonm 22:1a6327e9a7e6 139 delete dispC;
gallonm 22:1a6327e9a7e6 140 delete dispD;
gallonm 22:1a6327e9a7e6 141 delete dispE;
gallonm 22:1a6327e9a7e6 142 delete dispF;
gallonm 22:1a6327e9a7e6 143 delete dispG;
gallonm 22:1a6327e9a7e6 144 delete display;
gallonm 16:0d4776564733 145 }
gallonm 10:4954b09b72d8 146
gallonm 16:0d4776564733 147 DevI2C *dev_i2c;
gallonm 16:0d4776564733 148
gallonm 16:0d4776564733 149 VL6180X *sensor_top;
gallonm 16:0d4776564733 150 VL6180X *sensor_bottom;
gallonm 16:0d4776564733 151 VL6180X *sensor_left;
gallonm 16:0d4776564733 152 VL6180X *sensor_right;
gallonm 16:0d4776564733 153
gallonm 16:0d4776564733 154 STMPE1600DigiOut *gpio0_top;
gallonm 16:0d4776564733 155 STMPE1600DigiOut *gpio0_bottom;
gallonm 16:0d4776564733 156 STMPE1600DigiOut *gpio0_left;
gallonm 16:0d4776564733 157 STMPE1600DigiOut *gpio0_right;
gallonm 16:0d4776564733 158
gallonm 16:0d4776564733 159 STMPE1600DigiOut *digit1;
gallonm 16:0d4776564733 160 STMPE1600DigiOut *digit2;
gallonm 16:0d4776564733 161 STMPE1600DigiOut *digit3;
gallonm 16:0d4776564733 162 STMPE1600DigiOut *digit4;
gallonm 10:4954b09b72d8 163
gallonm 16:0d4776564733 164 STMPE1600DigiOut *dispA;
gallonm 16:0d4776564733 165 STMPE1600DigiOut *dispB;
gallonm 16:0d4776564733 166 STMPE1600DigiOut *dispC;
gallonm 16:0d4776564733 167 STMPE1600DigiOut *dispD;
gallonm 16:0d4776564733 168 STMPE1600DigiOut *dispE;
gallonm 16:0d4776564733 169 STMPE1600DigiOut *dispF;
gallonm 16:0d4776564733 170 STMPE1600DigiOut *dispG;
gallonm 16:0d4776564733 171
gallonm 16:0d4776564733 172 Display *display;
gallonm 4:a5abf7757947 173
gallonm 16:0d4776564733 174 static X_NUCLEO_6180XA1 *Instance(DevI2C *ext_i2c);
gallonm 16:0d4776564733 175
gallonm 16:0d4776564733 176 int InitBoard();
gallonm 16:0d4776564733 177
gallonm 16:0d4776564733 178 private:
gallonm 16:0d4776564733 179 static X_NUCLEO_6180XA1 *_instance;
gallonm 10:4954b09b72d8 180 };
gallonm 0:1fb1f010ac84 181
gallonm 7:2dc81120c917 182 #endif /* __X_NUCLEO_6180XA1_H */