33 #ifndef __SILICON_LABS_EM_IDAC_H__
34 #define __SILICON_LABS_EM_IDAC_H__
38 #if defined(IDAC_COUNT) && (IDAC_COUNT > 0)
58 #define IDAC_REF_VALID(ref) ((ref) == IDAC0)
69 #if defined( _IDAC_CTRL_OUTMODE_MASK )
72 #elif ( _IDAC_CTRL_APORTOUTSEL_MASK )
73 idacOutputAPORT1XCH0 = IDAC_CTRL_APORTOUTSEL_APORT1XCH0,
74 idacOutputAPORT1YCH1 = IDAC_CTRL_APORTOUTSEL_APORT1YCH1,
75 idacOutputAPORT1XCH2 = IDAC_CTRL_APORTOUTSEL_APORT1XCH2,
76 idacOutputAPORT1YCH3 = IDAC_CTRL_APORTOUTSEL_APORT1YCH3,
77 idacOutputAPORT1XCH4 = IDAC_CTRL_APORTOUTSEL_APORT1XCH4,
78 idacOutputAPORT1YCH5 = IDAC_CTRL_APORTOUTSEL_APORT1YCH5,
79 idacOutputAPORT1XCH6 = IDAC_CTRL_APORTOUTSEL_APORT1XCH6,
80 idacOutputAPORT1YCH7 = IDAC_CTRL_APORTOUTSEL_APORT1YCH7,
81 idacOutputAPORT1XCH8 = IDAC_CTRL_APORTOUTSEL_APORT1XCH8,
82 idacOutputAPORT1YCH9 = IDAC_CTRL_APORTOUTSEL_APORT1YCH9,
83 idacOutputAPORT1XCH10 = IDAC_CTRL_APORTOUTSEL_APORT1XCH10,
84 idacOutputAPORT1YCH11 = IDAC_CTRL_APORTOUTSEL_APORT1YCH11,
85 idacOutputAPORT1XCH12 = IDAC_CTRL_APORTOUTSEL_APORT1XCH12,
86 idacOutputAPORT1YCH13 = IDAC_CTRL_APORTOUTSEL_APORT1YCH13,
87 idacOutputAPORT1XCH14 = IDAC_CTRL_APORTOUTSEL_APORT1XCH14,
88 idacOutputAPORT1YCH15 = IDAC_CTRL_APORTOUTSEL_APORT1YCH15,
89 idacOutputAPORT1XCH16 = IDAC_CTRL_APORTOUTSEL_APORT1XCH16,
90 idacOutputAPORT1YCH17 = IDAC_CTRL_APORTOUTSEL_APORT1YCH17,
91 idacOutputAPORT1XCH18 = IDAC_CTRL_APORTOUTSEL_APORT1XCH18,
92 idacOutputAPORT1YCH19 = IDAC_CTRL_APORTOUTSEL_APORT1YCH19,
93 idacOutputAPORT1XCH20 = IDAC_CTRL_APORTOUTSEL_APORT1XCH20,
94 idacOutputAPORT1YCH21 = IDAC_CTRL_APORTOUTSEL_APORT1YCH21,
95 idacOutputAPORT1XCH22 = IDAC_CTRL_APORTOUTSEL_APORT1XCH22,
96 idacOutputAPORT1YCH23 = IDAC_CTRL_APORTOUTSEL_APORT1YCH23,
97 idacOutputAPORT1XCH24 = IDAC_CTRL_APORTOUTSEL_APORT1XCH24,
98 idacOutputAPORT1YCH25 = IDAC_CTRL_APORTOUTSEL_APORT1YCH25,
99 idacOutputAPORT1XCH26 = IDAC_CTRL_APORTOUTSEL_APORT1XCH26,
100 idacOutputAPORT1YCH27 = IDAC_CTRL_APORTOUTSEL_APORT1YCH27,
101 idacOutputAPORT1XCH28 = IDAC_CTRL_APORTOUTSEL_APORT1XCH28,
102 idacOutputAPORT1YCH29 = IDAC_CTRL_APORTOUTSEL_APORT1YCH29,
103 idacOutputAPORT1XCH30 = IDAC_CTRL_APORTOUTSEL_APORT1XCH30,
104 idacOutputAPORT1YCH31 = IDAC_CTRL_APORTOUTSEL_APORT1YCH31,
117 #if defined( IDAC_CTRL_PRSSEL_PRSCH4 )
118 idacPRSSELCh4 = IDAC_CTRL_PRSSEL_PRSCH4,
119 idacPRSSELCh5 = IDAC_CTRL_PRSSEL_PRSCH5,
121 #if defined( IDAC_CTRL_PRSSEL_PRSCH6 )
122 idacPRSSELCh6 = IDAC_CTRL_PRSSEL_PRSCH6,
123 idacPRSSELCh7 = IDAC_CTRL_PRSSEL_PRSCH7,
124 idacPRSSELCh8 = IDAC_CTRL_PRSSEL_PRSCH8,
125 idacPRSSELCh9 = IDAC_CTRL_PRSSEL_PRSCH9,
126 idacPRSSELCh10 = IDAC_CTRL_PRSSEL_PRSCH10,
127 idacPRSSELCh11 = IDAC_CTRL_PRSSEL_PRSCH11,
173 #if defined( _IDAC_CTRL_OUTMODE_MASK )
174 #define IDAC_INIT_DEFAULT \
182 #elif ( _IDAC_CTRL_APORTOUTSEL_MASK )
183 #define IDAC_INIT_DEFAULT \
186 idacOutputAPORT1XCH0, \
299 #if defined( _IDAC_IEN_MASK )
311 __STATIC_INLINE
void IDAC_IntClear(
IDAC_TypeDef *idac, uint32_t flags)
328 __STATIC_INLINE
void IDAC_IntDisable(
IDAC_TypeDef *idac, uint32_t flags)
350 __STATIC_INLINE
void IDAC_IntEnable(
IDAC_TypeDef *idac, uint32_t flags)
370 __STATIC_INLINE uint32_t IDAC_IntGet(
IDAC_TypeDef *idac)
395 __STATIC_INLINE uint32_t IDAC_IntGetEnabled(
IDAC_TypeDef *idac)
404 return idac->IF & ien;
419 __STATIC_INLINE
void IDAC_IntSet(
IDAC_TypeDef *idac, uint32_t flags)
#define IDAC_CTRL_PRSSEL_PRSCH2
#define IDAC_CURPROG_RANGESEL_RANGE0
IDAC_PRSSEL_TypeDef prsSel
#define IDAC_CTRL_PRSSEL_PRSCH3
CMSIS Cortex-M Peripheral Access Layer for Silicon Laboratories microcontroller devices.
#define IDAC_CTRL_OUTMODE_PIN
void IDAC_Enable(IDAC_TypeDef *idac, bool enable)
Enable/disable IDAC.
void IDAC_MinimalOutputTransitionMode(IDAC_TypeDef *idac, bool enable)
Enable/disable Minimal Output Transition mode.
#define IDAC_CTRL_PRSSEL_PRSCH0
void IDAC_RangeSet(IDAC_TypeDef *idac, const IDAC_Range_TypeDef range)
Set the current range of the IDAC output.
#define IDAC_CTRL_PRSSEL_PRSCH1
#define IDAC_CURPROG_RANGESEL_RANGE3
void IDAC_Init(IDAC_TypeDef *idac, const IDAC_Init_TypeDef *init)
Initialize IDAC.
#define IDAC_CURPROG_RANGESEL_RANGE1
IDAC_OutMode_TypeDef outMode
void IDAC_StepSet(IDAC_TypeDef *idac, const uint32_t step)
Set the current step of the IDAC output.
void IDAC_Reset(IDAC_TypeDef *idac)
Reset IDAC to same state as after a HW reset.
void IDAC_OutEnable(IDAC_TypeDef *idac, bool enable)
Enable/disable the IDAC OUT pin.
#define IDAC_CURPROG_RANGESEL_RANGE2
#define IDAC_CTRL_OUTMODE_ADC