mbed library sources

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Mon Nov 03 10:45:07 2014 +0000
Revision:
382:ee426a420dbb
Parent:
targets/cmsis/TARGET_STM/TARGET_DISCO_L053C8/stm32l0xx_hal_dac_ex.c@376:cb4d9db17537
Child:
489:119543c9f674
Synchronized with git revision d54467eb07f62efd9ccdf44f1ede7fe1c1b0cf83

Full URL: https://github.com/mbedmicro/mbed/commit/d54467eb07f62efd9ccdf44f1ede7fe1c1b0cf83/

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 376:cb4d9db17537 1 /**
mbed_official 376:cb4d9db17537 2 ******************************************************************************
mbed_official 376:cb4d9db17537 3 * @file stm32l0xx_hal_dac_ex.c
mbed_official 376:cb4d9db17537 4 * @author MCD Application Team
mbed_official 376:cb4d9db17537 5 * @version V1.1.0
mbed_official 376:cb4d9db17537 6 * @date 18-June-2014
mbed_official 376:cb4d9db17537 7 * @brief DAC HAL module driver.
mbed_official 376:cb4d9db17537 8 *
mbed_official 376:cb4d9db17537 9 * This file provides firmware functions to manage the following
mbed_official 376:cb4d9db17537 10 * functionalities of the Digital to Analog Converter (DAC) peripheral:
mbed_official 376:cb4d9db17537 11 * + DAC wave generation
mbed_official 376:cb4d9db17537 12 *
mbed_official 376:cb4d9db17537 13 @verbatim
mbed_official 376:cb4d9db17537 14
mbed_official 376:cb4d9db17537 15 @endverbatim
mbed_official 376:cb4d9db17537 16 ******************************************************************************
mbed_official 376:cb4d9db17537 17 * @attention
mbed_official 376:cb4d9db17537 18 *
mbed_official 376:cb4d9db17537 19 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 376:cb4d9db17537 20 *
mbed_official 376:cb4d9db17537 21 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 376:cb4d9db17537 22 * are permitted provided that the following conditions are met:
mbed_official 376:cb4d9db17537 23 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 376:cb4d9db17537 24 * this list of conditions and the following disclaimer.
mbed_official 376:cb4d9db17537 25 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 376:cb4d9db17537 26 * this list of conditions and the following disclaimer in the documentation
mbed_official 376:cb4d9db17537 27 * and/or other materials provided with the distribution.
mbed_official 376:cb4d9db17537 28 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 376:cb4d9db17537 29 * may be used to endorse or promote products derived from this software
mbed_official 376:cb4d9db17537 30 * without specific prior written permission.
mbed_official 376:cb4d9db17537 31 *
mbed_official 376:cb4d9db17537 32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 376:cb4d9db17537 33 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 376:cb4d9db17537 34 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 376:cb4d9db17537 35 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 376:cb4d9db17537 36 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 376:cb4d9db17537 37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 376:cb4d9db17537 38 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 376:cb4d9db17537 39 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 376:cb4d9db17537 40 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 376:cb4d9db17537 41 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 376:cb4d9db17537 42 *
mbed_official 376:cb4d9db17537 43 ******************************************************************************
mbed_official 376:cb4d9db17537 44 */
mbed_official 376:cb4d9db17537 45
mbed_official 376:cb4d9db17537 46 /* Includes ------------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 47 #include "stm32l0xx_hal.h"
mbed_official 376:cb4d9db17537 48
mbed_official 376:cb4d9db17537 49 /** @addtogroup STM32L0xx_HAL_Driver
mbed_official 376:cb4d9db17537 50 * @{
mbed_official 376:cb4d9db17537 51 */
mbed_official 376:cb4d9db17537 52
mbed_official 376:cb4d9db17537 53 /** @defgroup DACEx
mbed_official 376:cb4d9db17537 54 * @brief DAC driver modules
mbed_official 376:cb4d9db17537 55 * @{
mbed_official 376:cb4d9db17537 56 */
mbed_official 376:cb4d9db17537 57
mbed_official 376:cb4d9db17537 58 #ifdef HAL_DAC_MODULE_ENABLED
mbed_official 376:cb4d9db17537 59 #if !defined (STM32L051xx) && !defined (STM32L061xx)
mbed_official 376:cb4d9db17537 60
mbed_official 376:cb4d9db17537 61 /* Private typedef -----------------------------------------------------------*/
mbed_official 376:cb4d9db17537 62 /* Private define ------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 63 /* Private macro -------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 64 /* Private variables ---------------------------------------------------------*/
mbed_official 376:cb4d9db17537 65 /* Private function prototypes -----------------------------------------------*/
mbed_official 376:cb4d9db17537 66 /* Private functions ---------------------------------------------------------*/
mbed_official 376:cb4d9db17537 67
mbed_official 376:cb4d9db17537 68 /** @defgroup DACEx_Private_Functions
mbed_official 376:cb4d9db17537 69 * @{
mbed_official 376:cb4d9db17537 70 */
mbed_official 376:cb4d9db17537 71
mbed_official 376:cb4d9db17537 72
mbed_official 376:cb4d9db17537 73 /** @defgroup DACEx_Group Peripheral Control functions
mbed_official 376:cb4d9db17537 74 * @brief Peripheral Control functions
mbed_official 376:cb4d9db17537 75 *
mbed_official 376:cb4d9db17537 76 @verbatim
mbed_official 376:cb4d9db17537 77 ==============================================================================
mbed_official 376:cb4d9db17537 78 ##### Peripheral Control functions #####
mbed_official 376:cb4d9db17537 79 ==============================================================================
mbed_official 376:cb4d9db17537 80 [..] This section provides functions allowing to:
mbed_official 376:cb4d9db17537 81 (+) Configure Triangle wave generation.
mbed_official 376:cb4d9db17537 82 (+) Configure Noise wave generation.
mbed_official 376:cb4d9db17537 83
mbed_official 376:cb4d9db17537 84 @endverbatim
mbed_official 376:cb4d9db17537 85 * @{
mbed_official 376:cb4d9db17537 86 */
mbed_official 376:cb4d9db17537 87
mbed_official 376:cb4d9db17537 88 /**
mbed_official 376:cb4d9db17537 89 * @brief Enables or disables the selected DAC channel wave triangle generation.
mbed_official 376:cb4d9db17537 90 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 376:cb4d9db17537 91 * the configuration information for the specified DAC.
mbed_official 376:cb4d9db17537 92 * @param channel: The selected DAC channel.
mbed_official 376:cb4d9db17537 93 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 94 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 376:cb4d9db17537 95 * @param Amplitude: Select max triangle amplitude.
mbed_official 376:cb4d9db17537 96 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 97 * @arg DAC_TRIANGLEAMPLITUDE_1: Select max triangle amplitude of 1
mbed_official 376:cb4d9db17537 98 * @arg DAC_TRIANGLEAMPLITUDE_3: Select max triangle amplitude of 3
mbed_official 376:cb4d9db17537 99 * @arg DAC_TRIANGLEAMPLITUDE_7: Select max triangle amplitude of 7
mbed_official 376:cb4d9db17537 100 * @arg DAC_TRIANGLEAMPLITUDE_15: Select max triangle amplitude of 15
mbed_official 376:cb4d9db17537 101 * @arg DAC_TRIANGLEAMPLITUDE_31: Select max triangle amplitude of 31
mbed_official 376:cb4d9db17537 102 * @arg DAC_TRIANGLEAMPLITUDE_63: Select max triangle amplitude of 63
mbed_official 376:cb4d9db17537 103 * @arg DAC_TRIANGLEAMPLITUDE_127: Select max triangle amplitude of 127
mbed_official 376:cb4d9db17537 104 * @arg DAC_TRIANGLEAMPLITUDE_255: Select max triangle amplitude of 255
mbed_official 376:cb4d9db17537 105 * @arg DAC_TRIANGLEAMPLITUDE_511: Select max triangle amplitude of 511
mbed_official 376:cb4d9db17537 106 * @arg DAC_TRIANGLEAMPLITUDE_1023: Select max triangle amplitude of 1023
mbed_official 376:cb4d9db17537 107 * @arg DAC_TRIANGLEAMPLITUDE_2047: Select max triangle amplitude of 2047
mbed_official 376:cb4d9db17537 108 * @arg DAC_TRIANGLEAMPLITUDE_4095: Select max triangle amplitude of 4095
mbed_official 376:cb4d9db17537 109 * @retval HAL status
mbed_official 376:cb4d9db17537 110 */
mbed_official 376:cb4d9db17537 111 HAL_StatusTypeDef HAL_DACEx_TriangleWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t channel, uint32_t Amplitude)
mbed_official 376:cb4d9db17537 112 {
mbed_official 376:cb4d9db17537 113 /* Check the parameters */
mbed_official 376:cb4d9db17537 114 assert_param(IS_DAC_CHANNEL(channel));
mbed_official 376:cb4d9db17537 115 assert_param(IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(Amplitude));
mbed_official 376:cb4d9db17537 116
mbed_official 376:cb4d9db17537 117 /* Process locked */
mbed_official 376:cb4d9db17537 118 __HAL_LOCK(hdac);
mbed_official 376:cb4d9db17537 119
mbed_official 376:cb4d9db17537 120 /* Change DAC state */
mbed_official 376:cb4d9db17537 121 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 376:cb4d9db17537 122
mbed_official 376:cb4d9db17537 123 /* Enable the selected wave generation for the selected DAC channel */
mbed_official 376:cb4d9db17537 124 hdac->Instance->CR |= (DAC_WAVEGENERATION_TRIANGLE | Amplitude) << channel;
mbed_official 376:cb4d9db17537 125
mbed_official 376:cb4d9db17537 126 /* Change DAC state */
mbed_official 376:cb4d9db17537 127 hdac->State = HAL_DAC_STATE_READY;
mbed_official 376:cb4d9db17537 128
mbed_official 376:cb4d9db17537 129 /* Process unlocked */
mbed_official 376:cb4d9db17537 130 __HAL_UNLOCK(hdac);
mbed_official 376:cb4d9db17537 131
mbed_official 376:cb4d9db17537 132 /* Return function status */
mbed_official 376:cb4d9db17537 133 return HAL_OK;
mbed_official 376:cb4d9db17537 134 }
mbed_official 376:cb4d9db17537 135
mbed_official 376:cb4d9db17537 136 /**
mbed_official 376:cb4d9db17537 137 * @brief Enables or disables the selected DAC channel wave noise generation.
mbed_official 376:cb4d9db17537 138 * @param channel: The selected DAC channel.
mbed_official 376:cb4d9db17537 139 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 140 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 376:cb4d9db17537 141 * @param Amplitude: Unmask DAC channel LFSR for noise wave generation.
mbed_official 376:cb4d9db17537 142 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 143 * @arg DAC_LFSRUNMASK_BIT0: Unmask DAC channel LFSR bit0 for noise wave generation
mbed_official 376:cb4d9db17537 144 * @arg DAC_LFSRUNMASK_BITS1_0: Unmask DAC channel LFSR bit[1:0] for noise wave generation
mbed_official 376:cb4d9db17537 145 * @arg DAC_LFSRUNMASK_BITS2_0: Unmask DAC channel LFSR bit[2:0] for noise wave generation
mbed_official 376:cb4d9db17537 146 * @arg DAC_LFSRUNMASK_BITS3_0: Unmask DAC channel LFSR bit[3:0] for noise wave generation
mbed_official 376:cb4d9db17537 147 * @arg DAC_LFSRUNMASK_BITS4_0: Unmask DAC channel LFSR bit[4:0] for noise wave generation
mbed_official 376:cb4d9db17537 148 * @arg DAC_LFSRUNMASK_BITS5_0: Unmask DAC channel LFSR bit[5:0] for noise wave generation
mbed_official 376:cb4d9db17537 149 * @arg DAC_LFSRUNMASK_BITS6_0: Unmask DAC channel LFSR bit[6:0] for noise wave generation
mbed_official 376:cb4d9db17537 150 * @arg DAC_LFSRUNMASK_BITS7_0: Unmask DAC channel LFSR bit[7:0] for noise wave generation
mbed_official 376:cb4d9db17537 151 * @arg DAC_LFSRUNMASK_BITS8_0: Unmask DAC channel LFSR bit[8:0] for noise wave generation
mbed_official 376:cb4d9db17537 152 * @arg DAC_LFSRUNMASK_BITS9_0: Unmask DAC channel LFSR bit[9:0] for noise wave generation
mbed_official 376:cb4d9db17537 153 * @arg DAC_LFSRUNMASK_BITS10_0: Unmask DAC channel LFSR bit[10:0] for noise wave generation
mbed_official 376:cb4d9db17537 154 * @arg DAC_LFSRUNMASK_BITS11_0: Unmask DAC channel LFSR bit[11:0] for noise wave generation
mbed_official 376:cb4d9db17537 155 * @retval HAL status
mbed_official 376:cb4d9db17537 156 */
mbed_official 376:cb4d9db17537 157 HAL_StatusTypeDef HAL_DACEx_NoiseWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t channel, uint32_t Amplitude)
mbed_official 376:cb4d9db17537 158 {
mbed_official 376:cb4d9db17537 159 /* Check the parameters */
mbed_official 376:cb4d9db17537 160 assert_param(IS_DAC_CHANNEL(channel));
mbed_official 376:cb4d9db17537 161 assert_param(IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(Amplitude));
mbed_official 376:cb4d9db17537 162
mbed_official 376:cb4d9db17537 163 /* Process locked */
mbed_official 376:cb4d9db17537 164 __HAL_LOCK(hdac);
mbed_official 376:cb4d9db17537 165
mbed_official 376:cb4d9db17537 166 /* Change DAC state */
mbed_official 376:cb4d9db17537 167 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 376:cb4d9db17537 168
mbed_official 376:cb4d9db17537 169 /* Enable the selected wave generation for the selected DAC channel */
mbed_official 376:cb4d9db17537 170 hdac->Instance->CR |= (DAC_WAVEGENERATION_NOISE | Amplitude) << channel;
mbed_official 376:cb4d9db17537 171
mbed_official 376:cb4d9db17537 172 /* Change DAC state */
mbed_official 376:cb4d9db17537 173 hdac->State = HAL_DAC_STATE_READY;
mbed_official 376:cb4d9db17537 174
mbed_official 376:cb4d9db17537 175 /* Process unlocked */
mbed_official 376:cb4d9db17537 176 __HAL_UNLOCK(hdac);
mbed_official 376:cb4d9db17537 177
mbed_official 376:cb4d9db17537 178 /* Return function status */
mbed_official 376:cb4d9db17537 179 return HAL_OK;
mbed_official 376:cb4d9db17537 180 }
mbed_official 376:cb4d9db17537 181
mbed_official 376:cb4d9db17537 182
mbed_official 376:cb4d9db17537 183 /**
mbed_official 376:cb4d9db17537 184 * @}
mbed_official 376:cb4d9db17537 185 */
mbed_official 376:cb4d9db17537 186
mbed_official 376:cb4d9db17537 187 /**
mbed_official 376:cb4d9db17537 188 * @}
mbed_official 376:cb4d9db17537 189 */
mbed_official 376:cb4d9db17537 190
mbed_official 376:cb4d9db17537 191 #endif /* STM32L051xx && STM32L061xx*/
mbed_official 376:cb4d9db17537 192 #endif /* HAL_DAC_MODULE_ENABLED */
mbed_official 376:cb4d9db17537 193
mbed_official 376:cb4d9db17537 194 /**
mbed_official 376:cb4d9db17537 195 * @}
mbed_official 376:cb4d9db17537 196 */
mbed_official 376:cb4d9db17537 197
mbed_official 376:cb4d9db17537 198 /**
mbed_official 376:cb4d9db17537 199 * @}
mbed_official 376:cb4d9db17537 200 */
mbed_official 376:cb4d9db17537 201
mbed_official 376:cb4d9db17537 202 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/