mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-09 16:21:45 +00:00
596 lines
24 KiB
C
596 lines
24 KiB
C
/*
|
|
** ###################################################################
|
|
** Processors: RW610ETA2I
|
|
** RW610HNA2I
|
|
** RW610UKA2I
|
|
** RW612ETA2I
|
|
** RW612HNA2I
|
|
** RW612UKA2I
|
|
**
|
|
** Version: rev. 1.0, 2021-03-16
|
|
** Build: b240715
|
|
**
|
|
** Abstract:
|
|
** CMSIS Peripheral Access Layer for DAC
|
|
**
|
|
** Copyright 1997-2016 Freescale Semiconductor, Inc.
|
|
** Copyright 2016-2024 NXP
|
|
** SPDX-License-Identifier: BSD-3-Clause
|
|
**
|
|
** http: www.nxp.com
|
|
** mail: support@nxp.com
|
|
**
|
|
** Revisions:
|
|
** - rev. 1.0 (2021-03-16)
|
|
** Initial version.
|
|
**
|
|
** ###################################################################
|
|
*/
|
|
|
|
/*!
|
|
* @file DAC.h
|
|
* @version 1.0
|
|
* @date 2021-03-16
|
|
* @brief CMSIS Peripheral Access Layer for DAC
|
|
*
|
|
* CMSIS Peripheral Access Layer for DAC
|
|
*/
|
|
|
|
#if !defined(DAC_H_)
|
|
#define DAC_H_ /**< Symbol preventing repeated inclusion */
|
|
|
|
#if (defined(CPU_RW610ETA2I) || defined(CPU_RW610HNA2I) || defined(CPU_RW610UKA2I))
|
|
#include "RW610_COMMON.h"
|
|
#elif (defined(CPU_RW612ETA2I) || defined(CPU_RW612HNA2I) || defined(CPU_RW612UKA2I))
|
|
#include "RW612_COMMON.h"
|
|
#else
|
|
#error "No valid CPU defined!"
|
|
#endif
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- Mapping Information
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/*!
|
|
* @addtogroup Mapping_Information Mapping Information
|
|
* @{
|
|
*/
|
|
|
|
/** Mapping Information */
|
|
#if !defined(DAC_CHANNEL_TRIGGER_SOURCE_T_)
|
|
#define DAC_CHANNEL_TRIGGER_SOURCE_T_
|
|
/*******************************************************************************
|
|
* Definitions
|
|
******************************************************************************/
|
|
|
|
/*!
|
|
* @brief The enumeration of dac channel trigger sources.
|
|
*/
|
|
|
|
typedef enum _dac_channel_trigger_source
|
|
{
|
|
kDAC_TriggerSourceCtimer1Match2 = 0U, /**< Use CTimer1 match 2 as trigger source. */
|
|
kDAC_TriggerSourceCtimer1Match1 = 1U, /**< Use CTimer1 match 1 as trigger source. */
|
|
kDAC_TriggerSourceGpio50 = 2U, /**< Use GPIO50 as trigger source. */
|
|
kDAC_TriggerSourceGpio55 = 3U, /**< Use GPIO55 as trigger source. */
|
|
} dac_channel_trigger_source_t;
|
|
#endif /* DAC_CHANNEL_TRIGGER_SOURCE_T_ */
|
|
|
|
|
|
/*!
|
|
* @}
|
|
*/ /* end of group Mapping_Information */
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- Device Peripheral Access Layer
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/*!
|
|
* @addtogroup Peripheral_access_layer Device Peripheral Access Layer
|
|
* @{
|
|
*/
|
|
|
|
|
|
/*
|
|
** Start of section using anonymous unions
|
|
*/
|
|
|
|
#if defined(__ARMCC_VERSION)
|
|
#if (__ARMCC_VERSION >= 6010050)
|
|
#pragma clang diagnostic push
|
|
#else
|
|
#pragma push
|
|
#pragma anon_unions
|
|
#endif
|
|
#elif defined(__GNUC__)
|
|
/* anonymous unions are enabled by default */
|
|
#elif defined(__IAR_SYSTEMS_ICC__)
|
|
#pragma language=extended
|
|
#else
|
|
#error Not supported compiler type
|
|
#endif
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- DAC Peripheral Access Layer
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/*!
|
|
* @addtogroup DAC_Peripheral_Access_Layer DAC Peripheral Access Layer
|
|
* @{
|
|
*/
|
|
|
|
/** DAC - Register Layout Typedef */
|
|
typedef struct {
|
|
__IO uint32_t CTRL; /**< DAC Control Register, offset: 0x0 */
|
|
__I uint32_t STATUS; /**< DAC Status Register, offset: 0x4 */
|
|
__IO uint32_t ACTRL; /**< Channel A Control Register, offset: 0x8 */
|
|
__IO uint32_t BCTRL; /**< Channel B Control Register, offset: 0xC */
|
|
__IO uint32_t ADATA; /**< Channel A Data Register, offset: 0x10 */
|
|
__IO uint32_t BDATA; /**< Channel B Data Register, offset: 0x14 */
|
|
__I uint32_t ISR; /**< Interrupt Status Register, offset: 0x18 */
|
|
__IO uint32_t IMR; /**< Interrupt Mask Register, offset: 0x1C */
|
|
__I uint32_t IRSR; /**< Interrupt Raw Status Register, offset: 0x20 */
|
|
__IO uint32_t ICR; /**< Interrupt Clear Register, offset: 0x24 */
|
|
__IO uint32_t CLK; /**< Clock Register, offset: 0x28 */
|
|
__IO uint32_t RST; /**< Soft Reset Register, offset: 0x2C */
|
|
} DAC_Type;
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- DAC Register Masks
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/*!
|
|
* @addtogroup DAC_Register_Masks DAC Register Masks
|
|
* @{
|
|
*/
|
|
|
|
/*! @name CTRL - DAC Control Register */
|
|
/*! @{ */
|
|
|
|
#define DAC_CTRL_REF_SEL_MASK (0x1U)
|
|
#define DAC_CTRL_REF_SEL_SHIFT (0U)
|
|
/*! REF_SEL - Reference selector
|
|
* 0b0..internal reference
|
|
* 0b1..external reference
|
|
*/
|
|
#define DAC_CTRL_REF_SEL(x) (((uint32_t)(((uint32_t)(x)) << DAC_CTRL_REF_SEL_SHIFT)) & DAC_CTRL_REF_SEL_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name STATUS - DAC Status Register */
|
|
/*! @{ */
|
|
|
|
#define DAC_STATUS_A_DV_MASK (0x1U)
|
|
#define DAC_STATUS_A_DV_SHIFT (0U)
|
|
/*! A_DV - DACA conversion status.
|
|
* 0b0..channel A conversion is not done
|
|
* 0b1..channel A conversion complete
|
|
*/
|
|
#define DAC_STATUS_A_DV(x) (((uint32_t)(((uint32_t)(x)) << DAC_STATUS_A_DV_SHIFT)) & DAC_STATUS_A_DV_MASK)
|
|
|
|
#define DAC_STATUS_B_DV_MASK (0x2U)
|
|
#define DAC_STATUS_B_DV_SHIFT (1U)
|
|
/*! B_DV - DACB conversion status
|
|
* 0b0..channel B conversion is not done
|
|
* 0b1..channel B conversion complete
|
|
*/
|
|
#define DAC_STATUS_B_DV(x) (((uint32_t)(((uint32_t)(x)) << DAC_STATUS_B_DV_SHIFT)) & DAC_STATUS_B_DV_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name ACTRL - Channel A Control Register */
|
|
/*! @{ */
|
|
|
|
#define DAC_ACTRL_A_EN_MASK (0x1U)
|
|
#define DAC_ACTRL_A_EN_SHIFT (0U)
|
|
/*! A_EN - Channel A Enable/Disable signal
|
|
* 0b0..disable channel A conversion
|
|
* 0b1..enable channel A conversion
|
|
*/
|
|
#define DAC_ACTRL_A_EN(x) (((uint32_t)(((uint32_t)(x)) << DAC_ACTRL_A_EN_SHIFT)) & DAC_ACTRL_A_EN_MASK)
|
|
|
|
#define DAC_ACTRL_A_IO_EN_MASK (0x2U)
|
|
#define DAC_ACTRL_A_IO_EN_SHIFT (1U)
|
|
/*! A_IO_EN - Channel A conversion output to pad enable
|
|
* 0b0..disable channel A conversion result to GPIO
|
|
* 0b1..enable channel A conversion result to GPIO
|
|
*/
|
|
#define DAC_ACTRL_A_IO_EN(x) (((uint32_t)(((uint32_t)(x)) << DAC_ACTRL_A_IO_EN_SHIFT)) & DAC_ACTRL_A_IO_EN_MASK)
|
|
|
|
#define DAC_ACTRL_A_TRIG_EN_MASK (0x4U)
|
|
#define DAC_ACTRL_A_TRIG_EN_SHIFT (2U)
|
|
/*! A_TRIG_EN - Channel A trigger enable
|
|
* 0b0..Channel A conversion triggered by external event disabled
|
|
* 0b1..Channel A conversion triggered by external event enabled
|
|
*/
|
|
#define DAC_ACTRL_A_TRIG_EN(x) (((uint32_t)(((uint32_t)(x)) << DAC_ACTRL_A_TRIG_EN_SHIFT)) & DAC_ACTRL_A_TRIG_EN_MASK)
|
|
|
|
#define DAC_ACTRL_A_TRIG_SEL_MASK (0x18U)
|
|
#define DAC_ACTRL_A_TRIG_SEL_SHIFT (3U)
|
|
/*! A_TRIG_SEL - Channel A trigger selector
|
|
* 0b00..ctimer1 match2
|
|
* 0b01..ctimer1 match1
|
|
* 0b10..GPIO50
|
|
* 0b11..GPIO55
|
|
*/
|
|
#define DAC_ACTRL_A_TRIG_SEL(x) (((uint32_t)(((uint32_t)(x)) << DAC_ACTRL_A_TRIG_SEL_SHIFT)) & DAC_ACTRL_A_TRIG_SEL_MASK)
|
|
|
|
#define DAC_ACTRL_A_TRIG_TYP_MASK (0x60U)
|
|
#define DAC_ACTRL_A_TRIG_TYP_SHIFT (5U)
|
|
/*! A_TRIG_TYP - Channel A trigger type
|
|
* 0b00..reserved
|
|
* 0b01..rising edge trigger
|
|
* 0b10..falling edge trigger
|
|
* 0b11..both rising and falling edge trigger
|
|
*/
|
|
#define DAC_ACTRL_A_TRIG_TYP(x) (((uint32_t)(((uint32_t)(x)) << DAC_ACTRL_A_TRIG_TYP_SHIFT)) & DAC_ACTRL_A_TRIG_TYP_MASK)
|
|
|
|
#define DAC_ACTRL_A_DEN_MASK (0x80U)
|
|
#define DAC_ACTRL_A_DEN_SHIFT (7U)
|
|
/*! A_DEN - Channel A DMA enable
|
|
* 0b0..DMA data transfer disabled
|
|
* 0b1..DMA data transfer enabled
|
|
*/
|
|
#define DAC_ACTRL_A_DEN(x) (((uint32_t)(((uint32_t)(x)) << DAC_ACTRL_A_DEN_SHIFT)) & DAC_ACTRL_A_DEN_MASK)
|
|
|
|
#define DAC_ACTRL_A_TIME_MODE_MASK (0x100U)
|
|
#define DAC_ACTRL_A_TIME_MODE_SHIFT (8U)
|
|
/*! A_TIME_MODE - Channel A Mode
|
|
* 0b0..non-timing related
|
|
* 0b1..timing related
|
|
*/
|
|
#define DAC_ACTRL_A_TIME_MODE(x) (((uint32_t)(((uint32_t)(x)) << DAC_ACTRL_A_TIME_MODE_SHIFT)) & DAC_ACTRL_A_TIME_MODE_MASK)
|
|
|
|
#define DAC_ACTRL_A_TRIA_HALF_MASK (0x200U)
|
|
#define DAC_ACTRL_A_TRIA_HALF_SHIFT (9U)
|
|
/*! A_TRIA_HALF - Channel A triangle wave type selector.
|
|
* 0b0..full triangle
|
|
* 0b1..half triangle
|
|
*/
|
|
#define DAC_ACTRL_A_TRIA_HALF(x) (((uint32_t)(((uint32_t)(x)) << DAC_ACTRL_A_TRIA_HALF_SHIFT)) & DAC_ACTRL_A_TRIA_HALF_MASK)
|
|
|
|
#define DAC_ACTRL_A_TRIA_MAMP_SEL_MASK (0x3C00U)
|
|
#define DAC_ACTRL_A_TRIA_MAMP_SEL_SHIFT (10U)
|
|
/*! A_TRIA_MAMP_SEL - Channel A triangle wave max amplitude selector.
|
|
* 0b0000..63
|
|
* 0b0001..127
|
|
* 0b0010..191
|
|
* 0b0011..255
|
|
* 0b0100..319
|
|
* 0b0101..383
|
|
* 0b0110..447
|
|
* 0b0111..511
|
|
* 0b1000..575
|
|
* 0b1001..639
|
|
* 0b1010..703
|
|
* 0b1011..767
|
|
* 0b1100..831
|
|
* 0b1101..895
|
|
* 0b1110..959
|
|
* 0b1111..1023
|
|
*/
|
|
#define DAC_ACTRL_A_TRIA_MAMP_SEL(x) (((uint32_t)(((uint32_t)(x)) << DAC_ACTRL_A_TRIA_MAMP_SEL_SHIFT)) & DAC_ACTRL_A_TRIA_MAMP_SEL_MASK)
|
|
|
|
#define DAC_ACTRL_A_TRIA_STEP_SEL_MASK (0xC000U)
|
|
#define DAC_ACTRL_A_TRIA_STEP_SEL_SHIFT (14U)
|
|
/*! A_TRIA_STEP_SEL - Channel A triangle wave step selector.
|
|
* 0b00..1
|
|
* 0b01..3
|
|
* 0b10..15
|
|
* 0b11..511
|
|
*/
|
|
#define DAC_ACTRL_A_TRIA_STEP_SEL(x) (((uint32_t)(((uint32_t)(x)) << DAC_ACTRL_A_TRIA_STEP_SEL_SHIFT)) & DAC_ACTRL_A_TRIA_STEP_SEL_MASK)
|
|
|
|
#define DAC_ACTRL_A_WAVE_MASK (0x30000U)
|
|
#define DAC_ACTRL_A_WAVE_SHIFT (16U)
|
|
/*! A_WAVE - Channel A wave type select.
|
|
* 0b00..
|
|
* 0b01..triangle wave
|
|
* 0b11..
|
|
* 0b10..sine wave
|
|
*/
|
|
#define DAC_ACTRL_A_WAVE(x) (((uint32_t)(((uint32_t)(x)) << DAC_ACTRL_A_WAVE_SHIFT)) & DAC_ACTRL_A_WAVE_MASK)
|
|
|
|
#define DAC_ACTRL_A_RANGE_MASK (0xC0000U)
|
|
#define DAC_ACTRL_A_RANGE_SHIFT (18U)
|
|
/*! A_RANGE - Output voltage range control, with Internal/External reference
|
|
* 0b00..0.16+(0.64*input code/1023) with ref_sel=0(internal)/0.08* Vref_ext+(0.32* Vref_ext*input_code/1023) with ref_sel=1(external)
|
|
* 0b01..0.19+(1.01*input code /1023) with ref_sel=0(internal)/0.095* Vref_ext+(0.505* Vref_ext*input_code/1023) with ref_sel=1(external)
|
|
* 0b10..0.19+(1.01*input code /1023) with ref_sel=0(internal)/0.095* Vref_ext+(0.505* Vref_ext*input_code/1023) with ref_sel=1(external)
|
|
* 0b11..0.18+(1.42*input code /1023) with ref_sel=0(internal)/0.09*Vref_ext+(0.71* Vref_ext*input_code/1023) with ref_sel=1(external)
|
|
*/
|
|
#define DAC_ACTRL_A_RANGE(x) (((uint32_t)(((uint32_t)(x)) << DAC_ACTRL_A_RANGE_SHIFT)) & DAC_ACTRL_A_RANGE_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name BCTRL - Channel B Control Register */
|
|
/*! @{ */
|
|
|
|
#define DAC_BCTRL_B_EN_MASK (0x1U)
|
|
#define DAC_BCTRL_B_EN_SHIFT (0U)
|
|
/*! B_EN - Channel B Enable/Disable signal
|
|
* 0b0..disable channel B conversion
|
|
* 0b1..enable channel B conversion
|
|
*/
|
|
#define DAC_BCTRL_B_EN(x) (((uint32_t)(((uint32_t)(x)) << DAC_BCTRL_B_EN_SHIFT)) & DAC_BCTRL_B_EN_MASK)
|
|
|
|
#define DAC_BCTRL_B_IO_EN_MASK (0x2U)
|
|
#define DAC_BCTRL_B_IO_EN_SHIFT (1U)
|
|
/*! B_IO_EN - Channel B conversion output to pad enable
|
|
* 0b0..disable channel B conversion result to GPIO
|
|
* 0b1..enable channel B conversion result to GPIO
|
|
*/
|
|
#define DAC_BCTRL_B_IO_EN(x) (((uint32_t)(((uint32_t)(x)) << DAC_BCTRL_B_IO_EN_SHIFT)) & DAC_BCTRL_B_IO_EN_MASK)
|
|
|
|
#define DAC_BCTRL_B_TRIG_EN_MASK (0x4U)
|
|
#define DAC_BCTRL_B_TRIG_EN_SHIFT (2U)
|
|
/*! B_TRIG_EN - Channel B trigger enable
|
|
* 0b0..Channel B conversion triggered by external event disabled
|
|
* 0b1..Channel B conversion triggered by external event enabled
|
|
*/
|
|
#define DAC_BCTRL_B_TRIG_EN(x) (((uint32_t)(((uint32_t)(x)) << DAC_BCTRL_B_TRIG_EN_SHIFT)) & DAC_BCTRL_B_TRIG_EN_MASK)
|
|
|
|
#define DAC_BCTRL_B_TRIG_SEL_MASK (0x18U)
|
|
#define DAC_BCTRL_B_TRIG_SEL_SHIFT (3U)
|
|
/*! B_TRIG_SEL - Channel B trigger selector
|
|
* 0b00..ctimer1 match2
|
|
* 0b01..ctimer1 match1
|
|
* 0b10..GPIO50
|
|
* 0b11..GPIO55
|
|
*/
|
|
#define DAC_BCTRL_B_TRIG_SEL(x) (((uint32_t)(((uint32_t)(x)) << DAC_BCTRL_B_TRIG_SEL_SHIFT)) & DAC_BCTRL_B_TRIG_SEL_MASK)
|
|
|
|
#define DAC_BCTRL_B_TRIG_TYP_MASK (0x60U)
|
|
#define DAC_BCTRL_B_TRIG_TYP_SHIFT (5U)
|
|
/*! B_TRIG_TYP - Channel B trigger type
|
|
* 0b00..reserved
|
|
* 0b01..rising edge trigger
|
|
* 0b10..falling edge trigger
|
|
* 0b11..both rising and falling edge trigger
|
|
*/
|
|
#define DAC_BCTRL_B_TRIG_TYP(x) (((uint32_t)(((uint32_t)(x)) << DAC_BCTRL_B_TRIG_TYP_SHIFT)) & DAC_BCTRL_B_TRIG_TYP_MASK)
|
|
|
|
#define DAC_BCTRL_B_DEN_MASK (0x80U)
|
|
#define DAC_BCTRL_B_DEN_SHIFT (7U)
|
|
/*! B_DEN - Channel B DMA enable
|
|
* 0b0..DMA data transfer disabled
|
|
* 0b1..DMA data transfer enabled
|
|
*/
|
|
#define DAC_BCTRL_B_DEN(x) (((uint32_t)(((uint32_t)(x)) << DAC_BCTRL_B_DEN_SHIFT)) & DAC_BCTRL_B_DEN_MASK)
|
|
|
|
#define DAC_BCTRL_B_TIME_MODE_MASK (0x100U)
|
|
#define DAC_BCTRL_B_TIME_MODE_SHIFT (8U)
|
|
/*! B_TIME_MODE - Channel B Mode
|
|
* 0b0..non-timing related
|
|
* 0b1..timing related
|
|
*/
|
|
#define DAC_BCTRL_B_TIME_MODE(x) (((uint32_t)(((uint32_t)(x)) << DAC_BCTRL_B_TIME_MODE_SHIFT)) & DAC_BCTRL_B_TIME_MODE_MASK)
|
|
|
|
#define DAC_BCTRL_B_WAVE_MASK (0x600U)
|
|
#define DAC_BCTRL_B_WAVE_SHIFT (9U)
|
|
/*! B_WAVE - Channel B wave type select.
|
|
* 0b00..
|
|
* 0b01..reserved
|
|
* 0b10..reserved
|
|
* 0b11..differential mode with channel A
|
|
*/
|
|
#define DAC_BCTRL_B_WAVE(x) (((uint32_t)(((uint32_t)(x)) << DAC_BCTRL_B_WAVE_SHIFT)) & DAC_BCTRL_B_WAVE_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name ADATA - Channel A Data Register */
|
|
/*! @{ */
|
|
|
|
#define DAC_ADATA_A_DATA_MASK (0x3FFU)
|
|
#define DAC_ADATA_A_DATA_SHIFT (0U)
|
|
/*! A_DATA - Channel A Data input */
|
|
#define DAC_ADATA_A_DATA(x) (((uint32_t)(((uint32_t)(x)) << DAC_ADATA_A_DATA_SHIFT)) & DAC_ADATA_A_DATA_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name BDATA - Channel B Data Register */
|
|
/*! @{ */
|
|
|
|
#define DAC_BDATA_B_DATA_MASK (0x3FFU)
|
|
#define DAC_BDATA_B_DATA_SHIFT (0U)
|
|
/*! B_DATA - Channel B Data input */
|
|
#define DAC_BDATA_B_DATA(x) (((uint32_t)(((uint32_t)(x)) << DAC_BDATA_B_DATA_SHIFT)) & DAC_BDATA_B_DATA_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name ISR - Interrupt Status Register */
|
|
/*! @{ */
|
|
|
|
#define DAC_ISR_A_RDY_INT_MASK (0x1U)
|
|
#define DAC_ISR_A_RDY_INT_SHIFT (0U)
|
|
/*! A_RDY_INT - Channel A Data Ready */
|
|
#define DAC_ISR_A_RDY_INT(x) (((uint32_t)(((uint32_t)(x)) << DAC_ISR_A_RDY_INT_SHIFT)) & DAC_ISR_A_RDY_INT_MASK)
|
|
|
|
#define DAC_ISR_B_RDY_INT_MASK (0x2U)
|
|
#define DAC_ISR_B_RDY_INT_SHIFT (1U)
|
|
/*! B_RDY_INT - Channel B Data Ready */
|
|
#define DAC_ISR_B_RDY_INT(x) (((uint32_t)(((uint32_t)(x)) << DAC_ISR_B_RDY_INT_SHIFT)) & DAC_ISR_B_RDY_INT_MASK)
|
|
|
|
#define DAC_ISR_A_TO_INT_MASK (0x4U)
|
|
#define DAC_ISR_A_TO_INT_SHIFT (2U)
|
|
/*! A_TO_INT - Channel A Timeout */
|
|
#define DAC_ISR_A_TO_INT(x) (((uint32_t)(((uint32_t)(x)) << DAC_ISR_A_TO_INT_SHIFT)) & DAC_ISR_A_TO_INT_MASK)
|
|
|
|
#define DAC_ISR_B_TO_INT_MASK (0x8U)
|
|
#define DAC_ISR_B_TO_INT_SHIFT (3U)
|
|
/*! B_TO_INT - Channel B Timeout */
|
|
#define DAC_ISR_B_TO_INT(x) (((uint32_t)(((uint32_t)(x)) << DAC_ISR_B_TO_INT_SHIFT)) & DAC_ISR_B_TO_INT_MASK)
|
|
|
|
#define DAC_ISR_TRIA_OVFL_INT_MASK (0x10U)
|
|
#define DAC_ISR_TRIA_OVFL_INT_SHIFT (4U)
|
|
/*! TRIA_OVFL_INT - Triangle Overflow */
|
|
#define DAC_ISR_TRIA_OVFL_INT(x) (((uint32_t)(((uint32_t)(x)) << DAC_ISR_TRIA_OVFL_INT_SHIFT)) & DAC_ISR_TRIA_OVFL_INT_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name IMR - Interrupt Mask Register */
|
|
/*! @{ */
|
|
|
|
#define DAC_IMR_A_RDY_INT_MSK_MASK (0x1U)
|
|
#define DAC_IMR_A_RDY_INT_MSK_SHIFT (0U)
|
|
/*! A_RDY_INT_MSK - Channel A Data Ready Mask */
|
|
#define DAC_IMR_A_RDY_INT_MSK(x) (((uint32_t)(((uint32_t)(x)) << DAC_IMR_A_RDY_INT_MSK_SHIFT)) & DAC_IMR_A_RDY_INT_MSK_MASK)
|
|
|
|
#define DAC_IMR_B_RDY_INT_MSK_MASK (0x2U)
|
|
#define DAC_IMR_B_RDY_INT_MSK_SHIFT (1U)
|
|
/*! B_RDY_INT_MSK - Channel B Data Ready Mask */
|
|
#define DAC_IMR_B_RDY_INT_MSK(x) (((uint32_t)(((uint32_t)(x)) << DAC_IMR_B_RDY_INT_MSK_SHIFT)) & DAC_IMR_B_RDY_INT_MSK_MASK)
|
|
|
|
#define DAC_IMR_A_TO_INT_MSK_MASK (0x4U)
|
|
#define DAC_IMR_A_TO_INT_MSK_SHIFT (2U)
|
|
/*! A_TO_INT_MSK - Channel A Timeout Mask */
|
|
#define DAC_IMR_A_TO_INT_MSK(x) (((uint32_t)(((uint32_t)(x)) << DAC_IMR_A_TO_INT_MSK_SHIFT)) & DAC_IMR_A_TO_INT_MSK_MASK)
|
|
|
|
#define DAC_IMR_B_TO_INT_MSK_MASK (0x8U)
|
|
#define DAC_IMR_B_TO_INT_MSK_SHIFT (3U)
|
|
/*! B_TO_INT_MSK - Channel B Timeout Mask */
|
|
#define DAC_IMR_B_TO_INT_MSK(x) (((uint32_t)(((uint32_t)(x)) << DAC_IMR_B_TO_INT_MSK_SHIFT)) & DAC_IMR_B_TO_INT_MSK_MASK)
|
|
|
|
#define DAC_IMR_TRIA_OVFL_INT_MSK_MASK (0x10U)
|
|
#define DAC_IMR_TRIA_OVFL_INT_MSK_SHIFT (4U)
|
|
/*! TRIA_OVFL_INT_MSK - Triangle Overflow Mask */
|
|
#define DAC_IMR_TRIA_OVFL_INT_MSK(x) (((uint32_t)(((uint32_t)(x)) << DAC_IMR_TRIA_OVFL_INT_MSK_SHIFT)) & DAC_IMR_TRIA_OVFL_INT_MSK_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name IRSR - Interrupt Raw Status Register */
|
|
/*! @{ */
|
|
|
|
#define DAC_IRSR_A_RDY_INT_RAW_MASK (0x1U)
|
|
#define DAC_IRSR_A_RDY_INT_RAW_SHIFT (0U)
|
|
/*! A_RDY_INT_RAW - Channel A Data Ready Raw */
|
|
#define DAC_IRSR_A_RDY_INT_RAW(x) (((uint32_t)(((uint32_t)(x)) << DAC_IRSR_A_RDY_INT_RAW_SHIFT)) & DAC_IRSR_A_RDY_INT_RAW_MASK)
|
|
|
|
#define DAC_IRSR_B_RDY_INT_RAW_MASK (0x2U)
|
|
#define DAC_IRSR_B_RDY_INT_RAW_SHIFT (1U)
|
|
/*! B_RDY_INT_RAW - Channel B Data Ready Raw */
|
|
#define DAC_IRSR_B_RDY_INT_RAW(x) (((uint32_t)(((uint32_t)(x)) << DAC_IRSR_B_RDY_INT_RAW_SHIFT)) & DAC_IRSR_B_RDY_INT_RAW_MASK)
|
|
|
|
#define DAC_IRSR_A_TO_INT_RAW_MASK (0x4U)
|
|
#define DAC_IRSR_A_TO_INT_RAW_SHIFT (2U)
|
|
/*! A_TO_INT_RAW - Channel A Timeout Raw */
|
|
#define DAC_IRSR_A_TO_INT_RAW(x) (((uint32_t)(((uint32_t)(x)) << DAC_IRSR_A_TO_INT_RAW_SHIFT)) & DAC_IRSR_A_TO_INT_RAW_MASK)
|
|
|
|
#define DAC_IRSR_B_TO_INT_RAW_MASK (0x8U)
|
|
#define DAC_IRSR_B_TO_INT_RAW_SHIFT (3U)
|
|
/*! B_TO_INT_RAW - Channel B Timeout Raw */
|
|
#define DAC_IRSR_B_TO_INT_RAW(x) (((uint32_t)(((uint32_t)(x)) << DAC_IRSR_B_TO_INT_RAW_SHIFT)) & DAC_IRSR_B_TO_INT_RAW_MASK)
|
|
|
|
#define DAC_IRSR_TRIA_OVFL_INT_RAW_MASK (0x10U)
|
|
#define DAC_IRSR_TRIA_OVFL_INT_RAW_SHIFT (4U)
|
|
/*! TRIA_OVFL_INT_RAW - Triangle Overflow Raw */
|
|
#define DAC_IRSR_TRIA_OVFL_INT_RAW(x) (((uint32_t)(((uint32_t)(x)) << DAC_IRSR_TRIA_OVFL_INT_RAW_SHIFT)) & DAC_IRSR_TRIA_OVFL_INT_RAW_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name ICR - Interrupt Clear Register */
|
|
/*! @{ */
|
|
|
|
#define DAC_ICR_A_RDY_INT_CLR_MASK (0x1U)
|
|
#define DAC_ICR_A_RDY_INT_CLR_SHIFT (0U)
|
|
/*! A_RDY_INT_CLR - Channel A Data Ready Clear */
|
|
#define DAC_ICR_A_RDY_INT_CLR(x) (((uint32_t)(((uint32_t)(x)) << DAC_ICR_A_RDY_INT_CLR_SHIFT)) & DAC_ICR_A_RDY_INT_CLR_MASK)
|
|
|
|
#define DAC_ICR_B_RDY_INT_CLR_MASK (0x2U)
|
|
#define DAC_ICR_B_RDY_INT_CLR_SHIFT (1U)
|
|
/*! B_RDY_INT_CLR - Channel B Data Ready Clear */
|
|
#define DAC_ICR_B_RDY_INT_CLR(x) (((uint32_t)(((uint32_t)(x)) << DAC_ICR_B_RDY_INT_CLR_SHIFT)) & DAC_ICR_B_RDY_INT_CLR_MASK)
|
|
|
|
#define DAC_ICR_A_TO_INT_CLR_MASK (0x4U)
|
|
#define DAC_ICR_A_TO_INT_CLR_SHIFT (2U)
|
|
/*! A_TO_INT_CLR - Channel A Timeout Clear */
|
|
#define DAC_ICR_A_TO_INT_CLR(x) (((uint32_t)(((uint32_t)(x)) << DAC_ICR_A_TO_INT_CLR_SHIFT)) & DAC_ICR_A_TO_INT_CLR_MASK)
|
|
|
|
#define DAC_ICR_B_TO_INT_CLR_MASK (0x8U)
|
|
#define DAC_ICR_B_TO_INT_CLR_SHIFT (3U)
|
|
/*! B_TO_INT_CLR - Channel B Timeout Clear */
|
|
#define DAC_ICR_B_TO_INT_CLR(x) (((uint32_t)(((uint32_t)(x)) << DAC_ICR_B_TO_INT_CLR_SHIFT)) & DAC_ICR_B_TO_INT_CLR_MASK)
|
|
|
|
#define DAC_ICR_TRIA_OVFL_INT_CLR_MASK (0x10U)
|
|
#define DAC_ICR_TRIA_OVFL_INT_CLR_SHIFT (4U)
|
|
/*! TRIA_OVFL_INT_CLR - Triangle Overflow Clear */
|
|
#define DAC_ICR_TRIA_OVFL_INT_CLR(x) (((uint32_t)(((uint32_t)(x)) << DAC_ICR_TRIA_OVFL_INT_CLR_SHIFT)) & DAC_ICR_TRIA_OVFL_INT_CLR_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name CLK - Clock Register */
|
|
/*! @{ */
|
|
|
|
#define DAC_CLK_CLK_CTRL_MASK (0x6U)
|
|
#define DAC_CLK_CLK_CTRL_SHIFT (1U)
|
|
/*! CLK_CTRL - DAC conversion rate selector.
|
|
* 0b00..62.5K
|
|
* 0b01..125K
|
|
* 0b10..250K
|
|
* 0b11..500K
|
|
*/
|
|
#define DAC_CLK_CLK_CTRL(x) (((uint32_t)(((uint32_t)(x)) << DAC_CLK_CLK_CTRL_SHIFT)) & DAC_CLK_CLK_CTRL_MASK)
|
|
|
|
#define DAC_CLK_SOFT_CLK_RST_MASK (0x10U)
|
|
#define DAC_CLK_SOFT_CLK_RST_SHIFT (4U)
|
|
/*! SOFT_CLK_RST - Soft reset for clock divider
|
|
* 0b0..
|
|
* 0b1..
|
|
*/
|
|
#define DAC_CLK_SOFT_CLK_RST(x) (((uint32_t)(((uint32_t)(x)) << DAC_CLK_SOFT_CLK_RST_SHIFT)) & DAC_CLK_SOFT_CLK_RST_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name RST - Soft Reset Register */
|
|
/*! @{ */
|
|
|
|
#define DAC_RST_A_SOFT_RST_MASK (0x1U)
|
|
#define DAC_RST_A_SOFT_RST_SHIFT (0U)
|
|
/*! A_SOFT_RST - Soft reset for DAC channel A, active high
|
|
* 0b0..no action
|
|
* 0b1..
|
|
*/
|
|
#define DAC_RST_A_SOFT_RST(x) (((uint32_t)(((uint32_t)(x)) << DAC_RST_A_SOFT_RST_SHIFT)) & DAC_RST_A_SOFT_RST_MASK)
|
|
|
|
#define DAC_RST_B_SOFT_RST_MASK (0x2U)
|
|
#define DAC_RST_B_SOFT_RST_SHIFT (1U)
|
|
/*! B_SOFT_RST - Soft reset for DAC channel B, active high
|
|
* 0b0..no action
|
|
* 0b1..
|
|
*/
|
|
#define DAC_RST_B_SOFT_RST(x) (((uint32_t)(((uint32_t)(x)) << DAC_RST_B_SOFT_RST_SHIFT)) & DAC_RST_B_SOFT_RST_MASK)
|
|
/*! @} */
|
|
|
|
|
|
/*!
|
|
* @}
|
|
*/ /* end of group DAC_Register_Masks */
|
|
|
|
/* Backward compatibility */
|
|
#define kDAC_GPT2Trigger kDAC_TriggerSourceCtimer1Match2
|
|
#define kDAC_GPT3Trigger kDAC_TriggerSourceCtimer1Match1
|
|
#define kDAC_GPIO45Trigger kDAC_TriggerSourceGpio50
|
|
#define kDAC_GPIO44Trigger kDAC_TriggerSourceGpio55
|
|
|
|
|
|
/*!
|
|
* @}
|
|
*/ /* end of group DAC_Peripheral_Access_Layer */
|
|
|
|
|
|
/*
|
|
** End of section using anonymous unions
|
|
*/
|
|
|
|
#if defined(__ARMCC_VERSION)
|
|
#if (__ARMCC_VERSION >= 6010050)
|
|
#pragma clang diagnostic pop
|
|
#else
|
|
#pragma pop
|
|
#endif
|
|
#elif defined(__GNUC__)
|
|
/* leave anonymous unions enabled */
|
|
#elif defined(__IAR_SYSTEMS_ICC__)
|
|
#pragma language=default
|
|
#else
|
|
#error Not supported compiler type
|
|
#endif
|
|
|
|
/*!
|
|
* @}
|
|
*/ /* end of group Peripheral_access_layer */
|
|
|
|
|
|
#endif /* DAC_H_ */
|
|
|