Alessandro Angelino / target-freescale-ksdk

Fork of target-freescale-ksdk by Morpheus

Committer:
Alessandro Angelino
Date:
Mon Apr 04 14:18:16 2016 +0100
Revision:
1:d01108809007
Parent:
0:e4d670b91a9a
Replace NVIC APIs with vIRQ ones

Who changed what in which revision?

UserRevisionLine numberNew contents of line
screamer 0:e4d670b91a9a 1 /*
screamer 0:e4d670b91a9a 2 * Copyright (c) 2013 - 2014, Freescale Semiconductor, Inc.
screamer 0:e4d670b91a9a 3 * All rights reserved.
screamer 0:e4d670b91a9a 4 *
screamer 0:e4d670b91a9a 5 * Redistribution and use in source and binary forms, with or without modification,
screamer 0:e4d670b91a9a 6 * are permitted provided that the following conditions are met:
screamer 0:e4d670b91a9a 7 *
screamer 0:e4d670b91a9a 8 * o Redistributions of source code must retain the above copyright notice, this list
screamer 0:e4d670b91a9a 9 * of conditions and the following disclaimer.
screamer 0:e4d670b91a9a 10 *
screamer 0:e4d670b91a9a 11 * o Redistributions in binary form must reproduce the above copyright notice, this
screamer 0:e4d670b91a9a 12 * list of conditions and the following disclaimer in the documentation and/or
screamer 0:e4d670b91a9a 13 * other materials provided with the distribution.
screamer 0:e4d670b91a9a 14 *
screamer 0:e4d670b91a9a 15 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
screamer 0:e4d670b91a9a 16 * contributors may be used to endorse or promote products derived from this
screamer 0:e4d670b91a9a 17 * software without specific prior written permission.
screamer 0:e4d670b91a9a 18 *
screamer 0:e4d670b91a9a 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
screamer 0:e4d670b91a9a 20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
screamer 0:e4d670b91a9a 21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
screamer 0:e4d670b91a9a 22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
screamer 0:e4d670b91a9a 23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
screamer 0:e4d670b91a9a 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
screamer 0:e4d670b91a9a 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
screamer 0:e4d670b91a9a 26 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
screamer 0:e4d670b91a9a 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
screamer 0:e4d670b91a9a 28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
screamer 0:e4d670b91a9a 29 */
screamer 0:e4d670b91a9a 30
screamer 0:e4d670b91a9a 31 #include "fsl_dac_hal.h"
screamer 0:e4d670b91a9a 32
screamer 0:e4d670b91a9a 33 /*FUNCTION*********************************************************************
screamer 0:e4d670b91a9a 34 *
screamer 0:e4d670b91a9a 35 * Function Name : DAC_HAL_Init
screamer 0:e4d670b91a9a 36 * Description : Reset all the configurable registers to be reset state for DAC.
screamer 0:e4d670b91a9a 37 * It should be called before configuring the DAC module.
screamer 0:e4d670b91a9a 38 *
screamer 0:e4d670b91a9a 39 *END*************************************************************************/
screamer 0:e4d670b91a9a 40 void DAC_HAL_Init(uint32_t baseAddr)
screamer 0:e4d670b91a9a 41 {
screamer 0:e4d670b91a9a 42 /* DACx_DATL and DACx_DATH */
screamer 0:e4d670b91a9a 43 HW_DAC_DATnL_WR(baseAddr, 0U, 0U); HW_DAC_DATnH_WR(baseAddr, 0U, 0U);
screamer 0:e4d670b91a9a 44 HW_DAC_DATnL_WR(baseAddr, 1U, 0U); HW_DAC_DATnH_WR(baseAddr, 1U, 0U);
screamer 0:e4d670b91a9a 45 #if (HW_DAC_DATnL_COUNT > 2U)
screamer 0:e4d670b91a9a 46 HW_DAC_DATnL_WR(baseAddr, 2U, 0U); HW_DAC_DATnH_WR(baseAddr, 2U, 0U);
screamer 0:e4d670b91a9a 47 HW_DAC_DATnL_WR(baseAddr, 3U, 0U); HW_DAC_DATnH_WR(baseAddr, 3U, 0U);
screamer 0:e4d670b91a9a 48 HW_DAC_DATnL_WR(baseAddr, 4U, 0U); HW_DAC_DATnH_WR(baseAddr, 4U, 0U);
screamer 0:e4d670b91a9a 49 HW_DAC_DATnL_WR(baseAddr, 5U, 0U); HW_DAC_DATnH_WR(baseAddr, 5U, 0U);
screamer 0:e4d670b91a9a 50 HW_DAC_DATnL_WR(baseAddr, 6U, 0U); HW_DAC_DATnH_WR(baseAddr, 6U, 0U);
screamer 0:e4d670b91a9a 51 HW_DAC_DATnL_WR(baseAddr, 7U, 0U); HW_DAC_DATnH_WR(baseAddr, 7U, 0U);
screamer 0:e4d670b91a9a 52 HW_DAC_DATnL_WR(baseAddr, 8U, 0U); HW_DAC_DATnH_WR(baseAddr, 8U, 0U);
screamer 0:e4d670b91a9a 53 HW_DAC_DATnL_WR(baseAddr, 9U, 0U); HW_DAC_DATnH_WR(baseAddr, 9U, 0U);
screamer 0:e4d670b91a9a 54 HW_DAC_DATnL_WR(baseAddr, 10U, 0U); HW_DAC_DATnH_WR(baseAddr, 10U, 0U);
screamer 0:e4d670b91a9a 55 HW_DAC_DATnL_WR(baseAddr, 11U, 0U); HW_DAC_DATnH_WR(baseAddr, 11U, 0U);
screamer 0:e4d670b91a9a 56 HW_DAC_DATnL_WR(baseAddr, 12U, 0U); HW_DAC_DATnH_WR(baseAddr, 12U, 0U);
screamer 0:e4d670b91a9a 57 HW_DAC_DATnL_WR(baseAddr, 13U, 0U); HW_DAC_DATnH_WR(baseAddr, 13U, 0U);
screamer 0:e4d670b91a9a 58 HW_DAC_DATnL_WR(baseAddr, 14U, 0U); HW_DAC_DATnH_WR(baseAddr, 14U, 0U);
screamer 0:e4d670b91a9a 59 HW_DAC_DATnL_WR(baseAddr, 15U, 0U); HW_DAC_DATnH_WR(baseAddr, 15U, 0U);
screamer 0:e4d670b91a9a 60 #endif /* HW_DAC_DATnL_COUNT */
screamer 0:e4d670b91a9a 61 /* DACx_SR. */
screamer 0:e4d670b91a9a 62 HW_DAC_SR_WR(baseAddr, 0U); /* Clear all flags. */
screamer 0:e4d670b91a9a 63 /* DACx_C0. */
screamer 0:e4d670b91a9a 64 HW_DAC_C0_WR(baseAddr, 0U);
screamer 0:e4d670b91a9a 65 /* DACx_C1. */
screamer 0:e4d670b91a9a 66 HW_DAC_C1_WR(baseAddr, 0U);
screamer 0:e4d670b91a9a 67 /* DACx_C2. */
screamer 0:e4d670b91a9a 68 HW_DAC_C2_WR(baseAddr, 15U);
screamer 0:e4d670b91a9a 69 }
screamer 0:e4d670b91a9a 70
screamer 0:e4d670b91a9a 71 /*FUNCTION*********************************************************************
screamer 0:e4d670b91a9a 72 *
screamer 0:e4d670b91a9a 73 * Function Name : DAC_HAL_SetBuffValue
screamer 0:e4d670b91a9a 74 * Description : Set the value assembled by the low 8 bits and high 4
screamer 0:e4d670b91a9a 75 * bits of 12-bit DAC item in buffer.
screamer 0:e4d670b91a9a 76 *
screamer 0:e4d670b91a9a 77 *END*************************************************************************/
screamer 0:e4d670b91a9a 78 void DAC_HAL_SetBuffValue(uint32_t baseAddr, uint8_t index, uint16_t value)
screamer 0:e4d670b91a9a 79 {
screamer 0:e4d670b91a9a 80 assert(index < HW_DAC_DATnL_COUNT);
screamer 0:e4d670b91a9a 81 BW_DAC_DATnL_DATA0(baseAddr, index, (uint8_t)(0xFFU & value) );
screamer 0:e4d670b91a9a 82 BW_DAC_DATnH_DATA1(baseAddr, index, (uint8_t)((0xF00U & value)>>8U) );
screamer 0:e4d670b91a9a 83 }
screamer 0:e4d670b91a9a 84
screamer 0:e4d670b91a9a 85 /*FUNCTION*********************************************************************
screamer 0:e4d670b91a9a 86 *
screamer 0:e4d670b91a9a 87 * Function Name : DAC_HAL_GetBuffValue
screamer 0:e4d670b91a9a 88 * Description : Get the value assembled by the low 8 bits and high 4
screamer 0:e4d670b91a9a 89 * bits of 12-bit DAC item in buffer.
screamer 0:e4d670b91a9a 90 *
screamer 0:e4d670b91a9a 91 *END*************************************************************************/
screamer 0:e4d670b91a9a 92 uint16_t DAC_HAL_GetBuffValue(uint32_t baseAddr, uint8_t index)
screamer 0:e4d670b91a9a 93 {
screamer 0:e4d670b91a9a 94 assert(index < HW_DAC_DATnL_COUNT);
screamer 0:e4d670b91a9a 95 uint16_t ret16;
screamer 0:e4d670b91a9a 96 ret16 = BR_DAC_DATnH_DATA1(baseAddr, index);
screamer 0:e4d670b91a9a 97 ret16 <<= 8U;
screamer 0:e4d670b91a9a 98 ret16 |= BR_DAC_DATnL_DATA0(baseAddr, index);
screamer 0:e4d670b91a9a 99 return ret16;
screamer 0:e4d670b91a9a 100 }
screamer 0:e4d670b91a9a 101
screamer 0:e4d670b91a9a 102 /******************************************************************************
screamer 0:e4d670b91a9a 103 * EOF
screamer 0:e4d670b91a9a 104 *****************************************************************************/
screamer 0:e4d670b91a9a 105