ble

Dependencies:   HC_SR04_Ultrasonic_Library Servo mbed

Fork of FIP_REV1 by Robotique FIP

Committer:
julientiron
Date:
Thu Jul 09 13:33:36 2015 +0000
Revision:
4:69a35a56ac48
Parent:
1:bdbf36f8408d
BLE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
julientiron 1:bdbf36f8408d 1 /**
julientiron 1:bdbf36f8408d 2 ******************************************************************************
julientiron 1:bdbf36f8408d 3 * @file x_nucleo_iks01a1_hum_temp.c
julientiron 1:bdbf36f8408d 4 * @author MEMS Application Team
julientiron 1:bdbf36f8408d 5 * @version V1.0.0
julientiron 1:bdbf36f8408d 6 * @date 30-July-2014
julientiron 1:bdbf36f8408d 7 * @brief This file provides a set of functions needed to manage the hts221 sensor.
julientiron 1:bdbf36f8408d 8 ******************************************************************************
julientiron 1:bdbf36f8408d 9 * @attention
julientiron 1:bdbf36f8408d 10 *
julientiron 1:bdbf36f8408d 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
julientiron 1:bdbf36f8408d 12 *
julientiron 1:bdbf36f8408d 13 * Redistribution and use in source and binary forms, with or without modification,
julientiron 1:bdbf36f8408d 14 * are permitted provided that the following conditions are met:
julientiron 1:bdbf36f8408d 15 * 1. Redistributions of source code must retain the above copyright notice,
julientiron 1:bdbf36f8408d 16 * this list of conditions and the following disclaimer.
julientiron 1:bdbf36f8408d 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
julientiron 1:bdbf36f8408d 18 * this list of conditions and the following disclaimer in the documentation
julientiron 1:bdbf36f8408d 19 * and/or other materials provided with the distribution.
julientiron 1:bdbf36f8408d 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
julientiron 1:bdbf36f8408d 21 * may be used to endorse or promote products derived from this software
julientiron 1:bdbf36f8408d 22 * without specific prior written permission.
julientiron 1:bdbf36f8408d 23 *
julientiron 1:bdbf36f8408d 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
julientiron 1:bdbf36f8408d 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
julientiron 1:bdbf36f8408d 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
julientiron 1:bdbf36f8408d 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
julientiron 1:bdbf36f8408d 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
julientiron 1:bdbf36f8408d 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
julientiron 1:bdbf36f8408d 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
julientiron 1:bdbf36f8408d 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
julientiron 1:bdbf36f8408d 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
julientiron 1:bdbf36f8408d 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
julientiron 1:bdbf36f8408d 34 *
julientiron 1:bdbf36f8408d 35 ******************************************************************************
julientiron 1:bdbf36f8408d 36 */
julientiron 1:bdbf36f8408d 37 /* Includes ------------------------------------------------------------------*/
julientiron 1:bdbf36f8408d 38 #include "x_nucleo_iks01a1_hum_temp.h"
julientiron 1:bdbf36f8408d 39
julientiron 1:bdbf36f8408d 40 /** @addtogroup BSP
julientiron 1:bdbf36f8408d 41 * @{
julientiron 1:bdbf36f8408d 42 */
julientiron 1:bdbf36f8408d 43
julientiron 1:bdbf36f8408d 44 /** @addtogroup X_NUCLEO_IKS01A1
julientiron 1:bdbf36f8408d 45 * @{
julientiron 1:bdbf36f8408d 46 */
julientiron 1:bdbf36f8408d 47
julientiron 1:bdbf36f8408d 48 /** @addtogroup X_NUCLEO_IKS01A1_HUM_TEMP
julientiron 1:bdbf36f8408d 49 * @{
julientiron 1:bdbf36f8408d 50 */
julientiron 1:bdbf36f8408d 51
julientiron 1:bdbf36f8408d 52
julientiron 1:bdbf36f8408d 53 /** @defgroup X_NUCLEO_IKS01A1_HUM_TEMP_Private_TypesDefinitions
julientiron 1:bdbf36f8408d 54 * @{
julientiron 1:bdbf36f8408d 55 */
julientiron 1:bdbf36f8408d 56
julientiron 1:bdbf36f8408d 57 /**
julientiron 1:bdbf36f8408d 58 * @}
julientiron 1:bdbf36f8408d 59 */
julientiron 1:bdbf36f8408d 60
julientiron 1:bdbf36f8408d 61 /** @defgroup X_NUCLEO_IKS01A1_HUM_TEMP_Private_Defines
julientiron 1:bdbf36f8408d 62 * @{
julientiron 1:bdbf36f8408d 63 */
julientiron 1:bdbf36f8408d 64 #ifndef NULL
julientiron 1:bdbf36f8408d 65 #define NULL (void *) 0
julientiron 1:bdbf36f8408d 66 #endif
julientiron 1:bdbf36f8408d 67 /**
julientiron 1:bdbf36f8408d 68 * @}
julientiron 1:bdbf36f8408d 69 */
julientiron 1:bdbf36f8408d 70
julientiron 1:bdbf36f8408d 71 /** @defgroup X_NUCLEO_IKS01A1_HUM_TEMP_Private_Macros
julientiron 1:bdbf36f8408d 72 * @{
julientiron 1:bdbf36f8408d 73 */
julientiron 1:bdbf36f8408d 74
julientiron 1:bdbf36f8408d 75 /**
julientiron 1:bdbf36f8408d 76 * @}
julientiron 1:bdbf36f8408d 77 */
julientiron 1:bdbf36f8408d 78
julientiron 1:bdbf36f8408d 79 /** @defgroup X_NUCLEO_IKS01A1_HUM_TEMP_Private_Variables
julientiron 1:bdbf36f8408d 80 * @{
julientiron 1:bdbf36f8408d 81 */
julientiron 1:bdbf36f8408d 82 static HUM_TEMP_DrvTypeDef *Hum_tempDrv;
julientiron 1:bdbf36f8408d 83 static uint8_t HumTempInitialized = 0;
julientiron 1:bdbf36f8408d 84 /**
julientiron 1:bdbf36f8408d 85 * @}
julientiron 1:bdbf36f8408d 86 */
julientiron 1:bdbf36f8408d 87
julientiron 1:bdbf36f8408d 88 /** @defgroup X_NUCLEO_IKS01A1_HUM_TEMP_Private_FunctionPrototypes
julientiron 1:bdbf36f8408d 89 * @{
julientiron 1:bdbf36f8408d 90 */
julientiron 1:bdbf36f8408d 91
julientiron 1:bdbf36f8408d 92 /**
julientiron 1:bdbf36f8408d 93 * @}
julientiron 1:bdbf36f8408d 94 */
julientiron 1:bdbf36f8408d 95
julientiron 1:bdbf36f8408d 96 /** @defgroup X_NUCLEO_IKS01A1_HUM_TEMP_Private_Functions
julientiron 1:bdbf36f8408d 97 * @{
julientiron 1:bdbf36f8408d 98 */
julientiron 1:bdbf36f8408d 99
julientiron 1:bdbf36f8408d 100 /**
julientiron 1:bdbf36f8408d 101 * @brief Set HUM_TEMP Initialization.
julientiron 1:bdbf36f8408d 102 * @param None
julientiron 1:bdbf36f8408d 103 * @retval HUM_TEMP_OK if no problem during initialization
julientiron 1:bdbf36f8408d 104 */
julientiron 1:bdbf36f8408d 105 HUM_TEMP_StatusTypeDef BSP_HUM_TEMP_Init(void)
julientiron 1:bdbf36f8408d 106 {
julientiron 1:bdbf36f8408d 107 HUM_TEMP_StatusTypeDef ret = HUM_TEMP_ERROR;
julientiron 1:bdbf36f8408d 108 // uint16_t ctrl = 0x0000;
julientiron 1:bdbf36f8408d 109 HUM_TEMP_InitTypeDef HTS221_InitStructure;
julientiron 1:bdbf36f8408d 110
julientiron 1:bdbf36f8408d 111 /* Initialize the hum_temp driver structure */
julientiron 1:bdbf36f8408d 112 Hum_tempDrv = &Hts221Drv;
julientiron 1:bdbf36f8408d 113
julientiron 1:bdbf36f8408d 114 /* Configure sensor */
julientiron 1:bdbf36f8408d 115 HTS221_InitStructure.OutputDataRate = HTS221_ODR_12_5Hz;
julientiron 1:bdbf36f8408d 116
julientiron 1:bdbf36f8408d 117 /* Hts221 Init */
julientiron 1:bdbf36f8408d 118 Hum_tempDrv->Init(&HTS221_InitStructure);
julientiron 1:bdbf36f8408d 119
julientiron 1:bdbf36f8408d 120 if(Hum_tempDrv->ReadID() == I_AM_HTS221)
julientiron 1:bdbf36f8408d 121 {
julientiron 1:bdbf36f8408d 122 HumTempInitialized = 1;
julientiron 1:bdbf36f8408d 123 ret = HUM_TEMP_OK;
julientiron 1:bdbf36f8408d 124 }
julientiron 1:bdbf36f8408d 125
julientiron 1:bdbf36f8408d 126 return ret;
julientiron 1:bdbf36f8408d 127 }
julientiron 1:bdbf36f8408d 128
julientiron 1:bdbf36f8408d 129 uint8_t BSP_HUM_TEMP_isInitialized(void)
julientiron 1:bdbf36f8408d 130 {
julientiron 1:bdbf36f8408d 131 return HumTempInitialized;
julientiron 1:bdbf36f8408d 132 }
julientiron 1:bdbf36f8408d 133
julientiron 1:bdbf36f8408d 134 /**
julientiron 1:bdbf36f8408d 135 * @brief Read ID of hum_temp component
julientiron 1:bdbf36f8408d 136 * @param None
julientiron 1:bdbf36f8408d 137 * @retval ID
julientiron 1:bdbf36f8408d 138 */
julientiron 1:bdbf36f8408d 139 uint8_t BSP_HUM_TEMP_ReadID(void)
julientiron 1:bdbf36f8408d 140 {
julientiron 1:bdbf36f8408d 141 uint8_t id = 0x00;
julientiron 1:bdbf36f8408d 142
julientiron 1:bdbf36f8408d 143 if(Hum_tempDrv->ReadID != NULL)
julientiron 1:bdbf36f8408d 144 {
julientiron 1:bdbf36f8408d 145 id = Hum_tempDrv->ReadID();
julientiron 1:bdbf36f8408d 146 }
julientiron 1:bdbf36f8408d 147 return id;
julientiron 1:bdbf36f8408d 148 }
julientiron 1:bdbf36f8408d 149
julientiron 1:bdbf36f8408d 150
julientiron 1:bdbf36f8408d 151 /**
julientiron 1:bdbf36f8408d 152 * @brief Check ID of HTS221 HumTemp sensor
julientiron 1:bdbf36f8408d 153 * @param None
julientiron 1:bdbf36f8408d 154 * @retval Test status
julientiron 1:bdbf36f8408d 155 */
julientiron 1:bdbf36f8408d 156 HUM_TEMP_StatusTypeDef BSP_HUM_TEMP_CheckID(void) {
julientiron 1:bdbf36f8408d 157 if (BSP_HUM_TEMP_ReadID() == I_AM_HTS221) {
julientiron 1:bdbf36f8408d 158 return HUM_TEMP_OK;
julientiron 1:bdbf36f8408d 159 } else {
julientiron 1:bdbf36f8408d 160 return HUM_TEMP_ERROR;
julientiron 1:bdbf36f8408d 161 }
julientiron 1:bdbf36f8408d 162 }
julientiron 1:bdbf36f8408d 163
julientiron 1:bdbf36f8408d 164
julientiron 1:bdbf36f8408d 165 /**
julientiron 1:bdbf36f8408d 166 * @brief Reboot memory content of hum_temp
julientiron 1:bdbf36f8408d 167 * @param None
julientiron 1:bdbf36f8408d 168 * @retval None
julientiron 1:bdbf36f8408d 169 */
julientiron 1:bdbf36f8408d 170 void BSP_HUM_TEMP_Reset(void)
julientiron 1:bdbf36f8408d 171 {
julientiron 1:bdbf36f8408d 172 if(Hum_tempDrv->Reset != NULL)
julientiron 1:bdbf36f8408d 173 {
julientiron 1:bdbf36f8408d 174 Hum_tempDrv->Reset();
julientiron 1:bdbf36f8408d 175 }
julientiron 1:bdbf36f8408d 176 }
julientiron 1:bdbf36f8408d 177
julientiron 1:bdbf36f8408d 178
julientiron 1:bdbf36f8408d 179 /**
julientiron 1:bdbf36f8408d 180 * @brief Power OFF HUM_TEMP sensor.
julientiron 1:bdbf36f8408d 181 * @param pfData: pointer on floating data
julientiron 1:bdbf36f8408d 182 * @retval None
julientiron 1:bdbf36f8408d 183 */
julientiron 1:bdbf36f8408d 184 void BSP_HUM_TEMP_PowerOFF()
julientiron 1:bdbf36f8408d 185 {
julientiron 1:bdbf36f8408d 186 if(Hum_tempDrv->PowerOFF!= NULL)
julientiron 1:bdbf36f8408d 187 {
julientiron 1:bdbf36f8408d 188 Hum_tempDrv->PowerOFF();
julientiron 1:bdbf36f8408d 189 }
julientiron 1:bdbf36f8408d 190 }
julientiron 1:bdbf36f8408d 191
julientiron 1:bdbf36f8408d 192
julientiron 1:bdbf36f8408d 193 /**
julientiron 1:bdbf36f8408d 194 * @brief Get Humidity value
julientiron 1:bdbf36f8408d 195 * @param pfData: pointer on floating data
julientiron 1:bdbf36f8408d 196 * @retval None
julientiron 1:bdbf36f8408d 197 */
julientiron 1:bdbf36f8408d 198 void BSP_HUM_TEMP_GetHumidity(float* pfData)
julientiron 1:bdbf36f8408d 199 {
julientiron 1:bdbf36f8408d 200 if(Hum_tempDrv->GetHumidity!= NULL)
julientiron 1:bdbf36f8408d 201 {
julientiron 1:bdbf36f8408d 202 Hum_tempDrv->GetHumidity(pfData);
julientiron 1:bdbf36f8408d 203 }
julientiron 1:bdbf36f8408d 204 }
julientiron 1:bdbf36f8408d 205
julientiron 1:bdbf36f8408d 206 /**
julientiron 1:bdbf36f8408d 207 * @brief Get Temperature value
julientiron 1:bdbf36f8408d 208 * @param pfData: pointer on floating data
julientiron 1:bdbf36f8408d 209 * @retval None
julientiron 1:bdbf36f8408d 210 */
julientiron 1:bdbf36f8408d 211 void BSP_HUM_TEMP_GetTemperature(float* pfData)
julientiron 1:bdbf36f8408d 212 {
julientiron 1:bdbf36f8408d 213 if(Hum_tempDrv->GetTemperature!= NULL)
julientiron 1:bdbf36f8408d 214 {
julientiron 1:bdbf36f8408d 215 Hum_tempDrv->GetTemperature(pfData);
julientiron 1:bdbf36f8408d 216 }
julientiron 1:bdbf36f8408d 217 }
julientiron 1:bdbf36f8408d 218
julientiron 1:bdbf36f8408d 219 /**
julientiron 1:bdbf36f8408d 220 * @}
julientiron 1:bdbf36f8408d 221 */
julientiron 1:bdbf36f8408d 222
julientiron 1:bdbf36f8408d 223 /**
julientiron 1:bdbf36f8408d 224 * @}
julientiron 1:bdbf36f8408d 225 */
julientiron 1:bdbf36f8408d 226
julientiron 1:bdbf36f8408d 227 /**
julientiron 1:bdbf36f8408d 228 * @}
julientiron 1:bdbf36f8408d 229 */
julientiron 1:bdbf36f8408d 230
julientiron 1:bdbf36f8408d 231 /**
julientiron 1:bdbf36f8408d 232 * @}
julientiron 1:bdbf36f8408d 233 */
julientiron 1:bdbf36f8408d 234
julientiron 1:bdbf36f8408d 235 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
julientiron 1:bdbf36f8408d 236