Now you can use NC as InterruptIn

Dependencies:   X_NUCLEO_COMMON

Fork of X_NUCLEO_6180XA1 by ST

Committer:
gallonm
Date:
Tue Oct 20 16:44:28 2015 +0200
Revision:
15:454710d17358
Parent:
14:0effa0bbf192
Child:
16:0d4776564733
Fixed the function StartMeasurement

Added the other sensors (bottom, left and right)
Introduced the function InitSensor for each sensors
At the start we turn off all sensors
Fixed the function InitBoard
Added the other STMPE1600DigiOut for bottom, left and right sensor
Update the destructor

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 0:1fb1f010ac84 46 #include "display_class.h"
gallonm 10:4954b09b72d8 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 4:a5abf7757947 60 public:
gallonm 10:4954b09b72d8 61 X_NUCLEO_6180XA1(DevI2C *ext_i2c) : dev_i2c(ext_i2c)
gallonm 10:4954b09b72d8 62 {
gallonm 10:4954b09b72d8 63 gpio0_top=new STMPE1600DigiOut(*dev_i2c, GPIO_12);
gallonm 15:454710d17358 64 sensor_top=new VL6180X(*dev_i2c, *gpio0_top, PB_0);
gallonm 15:454710d17358 65 gpio0_bottom=new STMPE1600DigiOut(*dev_i2c, GPIO_13);
gallonm 15:454710d17358 66 sensor_bottom=new VL6180X(*dev_i2c, *gpio0_bottom, PA_4);
gallonm 15:454710d17358 67 gpio0_left=new STMPE1600DigiOut(*dev_i2c, GPIO_14);
gallonm 15:454710d17358 68 sensor_left=new VL6180X(*dev_i2c, *gpio0_left, D13);
gallonm 15:454710d17358 69 gpio0_right=new STMPE1600DigiOut(*dev_i2c, GPIO_15);
gallonm 15:454710d17358 70 sensor_right=new VL6180X(*dev_i2c, *gpio0_right, PA_10);
gallonm 10:4954b09b72d8 71 }
gallonm 4:a5abf7757947 72
gallonm 10:4954b09b72d8 73 ~X_NUCLEO_6180XA1()
gallonm 10:4954b09b72d8 74 {
gallonm 10:4954b09b72d8 75 if(gpio0_top!=NULL)
gallonm 15:454710d17358 76 {
gallonm 15:454710d17358 77 delete gpio0_top;
gallonm 15:454710d17358 78 gpio0_top=NULL;
gallonm 15:454710d17358 79 }
gallonm 10:4954b09b72d8 80 if(sensor_top!=NULL)
gallonm 15:454710d17358 81 {
gallonm 15:454710d17358 82 delete sensor_top;
gallonm 15:454710d17358 83 sensor_top=NULL;
gallonm 15:454710d17358 84 }
gallonm 15:454710d17358 85 if(gpio0_bottom!=NULL)
gallonm 15:454710d17358 86 {
gallonm 15:454710d17358 87 delete gpio0_bottom;
gallonm 15:454710d17358 88 gpio0_bottom=NULL;
gallonm 15:454710d17358 89 }
gallonm 15:454710d17358 90 if(sensor_bottom!=NULL)
gallonm 15:454710d17358 91 {
gallonm 15:454710d17358 92 delete sensor_bottom;
gallonm 15:454710d17358 93 sensor_bottom=NULL;
gallonm 15:454710d17358 94 }
gallonm 15:454710d17358 95 if(gpio0_left!=NULL)
gallonm 15:454710d17358 96 {
gallonm 15:454710d17358 97 delete gpio0_left;
gallonm 15:454710d17358 98 gpio0_left=NULL;
gallonm 15:454710d17358 99 }
gallonm 15:454710d17358 100 if(sensor_left!=NULL)
gallonm 15:454710d17358 101 {
gallonm 15:454710d17358 102 delete sensor_left;
gallonm 15:454710d17358 103 sensor_left=NULL;
gallonm 15:454710d17358 104 }
gallonm 15:454710d17358 105 if(gpio0_right!=NULL)
gallonm 15:454710d17358 106 {
gallonm 15:454710d17358 107 delete gpio0_right;
gallonm 15:454710d17358 108 gpio0_right=NULL;
gallonm 15:454710d17358 109 }
gallonm 15:454710d17358 110 if(sensor_right!=NULL)
gallonm 15:454710d17358 111 {
gallonm 15:454710d17358 112 delete sensor_right;
gallonm 15:454710d17358 113 sensor_right=NULL;
gallonm 15:454710d17358 114 }
gallonm 10:4954b09b72d8 115 }
gallonm 10:4954b09b72d8 116
gallonm 10:4954b09b72d8 117 DevI2C *dev_i2c;
gallonm 10:4954b09b72d8 118 STMPE1600DigiOut *gpio0_top;
gallonm 15:454710d17358 119 STMPE1600DigiOut *gpio0_bottom;
gallonm 15:454710d17358 120 STMPE1600DigiOut *gpio0_left;
gallonm 15:454710d17358 121 STMPE1600DigiOut *gpio0_right;
gallonm 10:4954b09b72d8 122 VL6180X *sensor_top;
gallonm 15:454710d17358 123 VL6180X *sensor_bottom;
gallonm 15:454710d17358 124 VL6180X *sensor_left;
gallonm 15:454710d17358 125 VL6180X *sensor_right;
gallonm 15:454710d17358 126
gallonm 10:4954b09b72d8 127 //Display *display;
gallonm 10:4954b09b72d8 128
gallonm 10:4954b09b72d8 129 static X_NUCLEO_6180XA1 *Instance(DevI2C *ext_i2c);
gallonm 10:4954b09b72d8 130
gallonm 13:6736a00a0aa9 131 int InitBoard();
gallonm 4:a5abf7757947 132
gallonm 4:a5abf7757947 133 private:
gallonm 7:2dc81120c917 134 static X_NUCLEO_6180XA1 *_instance;
gallonm 10:4954b09b72d8 135 };
gallonm 0:1fb1f010ac84 136
gallonm 7:2dc81120c917 137 #endif /* __X_NUCLEO_6180XA1_H */