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 10:4954b09b72d8 1 /**
gallonm 10:4954b09b72d8 2 ******************************************************************************
gallonm 10:4954b09b72d8 3 * @file x_nucleo_6180xa1.cpp
gallonm 10:4954b09b72d8 4 * @author AST / EST
gallonm 10:4954b09b72d8 5 * @version V0.0.1
gallonm 10:4954b09b72d8 6 * @date 13-April-2015
gallonm 10:4954b09b72d8 7 * @brief Implementation file for the X_NUCLEO_VL6180XA1 singleton class
gallonm 10:4954b09b72d8 8 ******************************************************************************
gallonm 10:4954b09b72d8 9 * @attention
gallonm 10:4954b09b72d8 10 *
gallonm 10:4954b09b72d8 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
gallonm 10:4954b09b72d8 12 *
gallonm 10:4954b09b72d8 13 * Redistribution and use in source and binary forms, with or without modification,
gallonm 10:4954b09b72d8 14 * are permitted provided that the following conditions are met:
gallonm 10:4954b09b72d8 15 * 1. Redistributions of source code must retain the above copyright notice,
gallonm 10:4954b09b72d8 16 * this list of conditions and the following disclaimer.
gallonm 10:4954b09b72d8 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
gallonm 10:4954b09b72d8 18 * this list of conditions and the following disclaimer in the documentation
gallonm 10:4954b09b72d8 19 * and/or other materials provided with the distribution.
gallonm 10:4954b09b72d8 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
gallonm 10:4954b09b72d8 21 * may be used to endorse or promote products derived from this software
gallonm 10:4954b09b72d8 22 * without specific prior written permission.
gallonm 10:4954b09b72d8 23 *
gallonm 10:4954b09b72d8 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
gallonm 10:4954b09b72d8 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
gallonm 10:4954b09b72d8 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
gallonm 10:4954b09b72d8 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
gallonm 10:4954b09b72d8 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
gallonm 10:4954b09b72d8 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
gallonm 10:4954b09b72d8 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
gallonm 10:4954b09b72d8 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
gallonm 10:4954b09b72d8 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
gallonm 10:4954b09b72d8 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
gallonm 10:4954b09b72d8 34 *
gallonm 10:4954b09b72d8 35 ******************************************************************************
gallonm 10:4954b09b72d8 36 */
gallonm 10:4954b09b72d8 37
gallonm 10:4954b09b72d8 38
gallonm 10:4954b09b72d8 39 /* Includes ------------------------------------------------------------------*/
gallonm 10:4954b09b72d8 40 #include "x_nucleo_6180xa1.h"
gallonm 10:4954b09b72d8 41
gallonm 10:4954b09b72d8 42 /* Static variables ----------------------------------------------------------*/
gallonm 10:4954b09b72d8 43 X_NUCLEO_6180XA1* X_NUCLEO_6180XA1::_instance = NULL;
gallonm 10:4954b09b72d8 44
gallonm 10:4954b09b72d8 45
gallonm 10:4954b09b72d8 46 X_NUCLEO_6180XA1* X_NUCLEO_6180XA1::Instance(DevI2C *ext_i2c)
gallonm 10:4954b09b72d8 47 {
gallonm 10:4954b09b72d8 48 if(_instance==NULL)
gallonm 10:4954b09b72d8 49 _instance=new X_NUCLEO_6180XA1(ext_i2c);
gallonm 10:4954b09b72d8 50 else
gallonm 15:454710d17358 51 VL6180x_ErrLog("Failed to init X_NUCLEO_6180XA1 board!\n");
gallonm 10:4954b09b72d8 52 return _instance;
gallonm 10:4954b09b72d8 53 }
gallonm 10:4954b09b72d8 54
gallonm 10:4954b09b72d8 55
gallonm 15:454710d17358 56 int X_NUCLEO_6180XA1::InitBoard() //FIXME sistemare le stampe degli errori
gallonm 10:4954b09b72d8 57 {
gallonm 15:454710d17358 58 int status, n_dev=0;
gallonm 15:454710d17358 59
gallonm 15:454710d17358 60 sensor_top->VL6180x_Off();
gallonm 15:454710d17358 61 sensor_bottom->VL6180x_Off();
gallonm 15:454710d17358 62 sensor_left->VL6180x_Off();
gallonm 15:454710d17358 63 sensor_right->VL6180x_Off();
gallonm 10:4954b09b72d8 64 status=sensor_top->InitSensor(NEW_SENSOR_TOP_ADDRESS);
gallonm 10:4954b09b72d8 65 if(status)
gallonm 10:4954b09b72d8 66 {
gallonm 12:71d589e6fd2c 67 delete sensor_top;
gallonm 12:71d589e6fd2c 68 delete gpio0_top;
gallonm 10:4954b09b72d8 69 sensor_top=NULL;
gallonm 10:4954b09b72d8 70 gpio0_top=NULL;
gallonm 15:454710d17358 71 //VL6180x_ErrLog("Fail to init sensor_top\n\r");
gallonm 15:454710d17358 72 printf("Failure to init sensor_top\n\r");
gallonm 10:4954b09b72d8 73 }
gallonm 15:454710d17358 74 else
gallonm 15:454710d17358 75 {
gallonm 15:454710d17358 76 n_dev++;
gallonm 15:454710d17358 77 }
gallonm 15:454710d17358 78 status=sensor_bottom->InitSensor(NEW_SENSOR_BOTTOM_ADDRESS);
gallonm 15:454710d17358 79 if(status)
gallonm 15:454710d17358 80 {
gallonm 15:454710d17358 81 delete sensor_bottom;
gallonm 15:454710d17358 82 delete gpio0_bottom;
gallonm 15:454710d17358 83 sensor_bottom=NULL;
gallonm 15:454710d17358 84 gpio0_bottom=NULL;
gallonm 15:454710d17358 85 //VL6180x_ErrLog("Fail to init sensor_bottom\n\r");
gallonm 15:454710d17358 86 printf("Failed to init sensor_bottom\n\r");
gallonm 15:454710d17358 87 }
gallonm 15:454710d17358 88 else
gallonm 15:454710d17358 89 {
gallonm 15:454710d17358 90 n_dev++;
gallonm 15:454710d17358 91 }
gallonm 15:454710d17358 92 status=sensor_left->InitSensor(NEW_SENSOR_LEFT_ADDRESS);
gallonm 15:454710d17358 93 if(status)
gallonm 15:454710d17358 94 {
gallonm 15:454710d17358 95 delete sensor_left;
gallonm 15:454710d17358 96 delete gpio0_left;
gallonm 15:454710d17358 97 sensor_left=NULL;
gallonm 15:454710d17358 98 gpio0_left=NULL;
gallonm 15:454710d17358 99 //VL6180x_ErrLog("Fail to init sensor_left\n\r");
gallonm 15:454710d17358 100 printf("Failed to init sensor_left\n\r");
gallonm 15:454710d17358 101 }
gallonm 15:454710d17358 102 else
gallonm 15:454710d17358 103 {
gallonm 15:454710d17358 104 n_dev++;
gallonm 15:454710d17358 105 }
gallonm 15:454710d17358 106 status=sensor_right->InitSensor(NEW_SENSOR_RIGHT_ADDRESS);
gallonm 15:454710d17358 107 if(status)
gallonm 15:454710d17358 108 {
gallonm 15:454710d17358 109 delete sensor_right;
gallonm 15:454710d17358 110 delete gpio0_right;
gallonm 15:454710d17358 111 sensor_right=NULL;
gallonm 15:454710d17358 112 gpio0_right=NULL;
gallonm 15:454710d17358 113 //VL6180x_ErrLog("Fail to init sensor_right\n\r");
gallonm 15:454710d17358 114 printf("Failed to init sensor_right\n\r");
gallonm 15:454710d17358 115 }
gallonm 15:454710d17358 116 else
gallonm 15:454710d17358 117 {
gallonm 15:454710d17358 118 n_dev++;
gallonm 15:454710d17358 119 }
gallonm 15:454710d17358 120 if(n_dev==0)
gallonm 15:454710d17358 121 return 1;
gallonm 15:454710d17358 122 else
gallonm 15:454710d17358 123 return 0;
gallonm 10:4954b09b72d8 124 }
gallonm 10:4954b09b72d8 125
gallonm 10:4954b09b72d8 126