38 #if defined(IDAC_COUNT) && (IDAC_COUNT > 0)
84 #define IDAC_REF_VALID(ref) ((ref) == IDAC0)
95 #if defined( _IDAC_CTRL_OUTMODE_MASK )
96 idacOutputPin = IDAC_CTRL_OUTMODE_PIN,
97 idacOutputADC = IDAC_CTRL_OUTMODE_ADC
98 #elif ( _IDAC_CTRL_APORTOUTSEL_MASK )
99 idacOutputAPORT1XCH0 = IDAC_CTRL_APORTOUTSEL_APORT1XCH0,
100 idacOutputAPORT1YCH1 = IDAC_CTRL_APORTOUTSEL_APORT1YCH1,
101 idacOutputAPORT1XCH2 = IDAC_CTRL_APORTOUTSEL_APORT1XCH2,
102 idacOutputAPORT1YCH3 = IDAC_CTRL_APORTOUTSEL_APORT1YCH3,
103 idacOutputAPORT1XCH4 = IDAC_CTRL_APORTOUTSEL_APORT1XCH4,
104 idacOutputAPORT1YCH5 = IDAC_CTRL_APORTOUTSEL_APORT1YCH5,
105 idacOutputAPORT1XCH6 = IDAC_CTRL_APORTOUTSEL_APORT1XCH6,
106 idacOutputAPORT1YCH7 = IDAC_CTRL_APORTOUTSEL_APORT1YCH7,
107 idacOutputAPORT1XCH8 = IDAC_CTRL_APORTOUTSEL_APORT1XCH8,
108 idacOutputAPORT1YCH9 = IDAC_CTRL_APORTOUTSEL_APORT1YCH9,
109 idacOutputAPORT1XCH10 = IDAC_CTRL_APORTOUTSEL_APORT1XCH10,
110 idacOutputAPORT1YCH11 = IDAC_CTRL_APORTOUTSEL_APORT1YCH11,
111 idacOutputAPORT1XCH12 = IDAC_CTRL_APORTOUTSEL_APORT1XCH12,
112 idacOutputAPORT1YCH13 = IDAC_CTRL_APORTOUTSEL_APORT1YCH13,
113 idacOutputAPORT1XCH14 = IDAC_CTRL_APORTOUTSEL_APORT1XCH14,
114 idacOutputAPORT1YCH15 = IDAC_CTRL_APORTOUTSEL_APORT1YCH15,
115 idacOutputAPORT1XCH16 = IDAC_CTRL_APORTOUTSEL_APORT1XCH16,
116 idacOutputAPORT1YCH17 = IDAC_CTRL_APORTOUTSEL_APORT1YCH17,
117 idacOutputAPORT1XCH18 = IDAC_CTRL_APORTOUTSEL_APORT1XCH18,
118 idacOutputAPORT1YCH19 = IDAC_CTRL_APORTOUTSEL_APORT1YCH19,
119 idacOutputAPORT1XCH20 = IDAC_CTRL_APORTOUTSEL_APORT1XCH20,
120 idacOutputAPORT1YCH21 = IDAC_CTRL_APORTOUTSEL_APORT1YCH21,
121 idacOutputAPORT1XCH22 = IDAC_CTRL_APORTOUTSEL_APORT1XCH22,
122 idacOutputAPORT1YCH23 = IDAC_CTRL_APORTOUTSEL_APORT1YCH23,
123 idacOutputAPORT1XCH24 = IDAC_CTRL_APORTOUTSEL_APORT1XCH24,
124 idacOutputAPORT1YCH25 = IDAC_CTRL_APORTOUTSEL_APORT1YCH25,
125 idacOutputAPORT1XCH26 = IDAC_CTRL_APORTOUTSEL_APORT1XCH26,
126 idacOutputAPORT1YCH27 = IDAC_CTRL_APORTOUTSEL_APORT1YCH27,
127 idacOutputAPORT1XCH28 = IDAC_CTRL_APORTOUTSEL_APORT1XCH28,
128 idacOutputAPORT1YCH29 = IDAC_CTRL_APORTOUTSEL_APORT1YCH29,
129 idacOutputAPORT1XCH30 = IDAC_CTRL_APORTOUTSEL_APORT1XCH30,
130 idacOutputAPORT1YCH31 = IDAC_CTRL_APORTOUTSEL_APORT1YCH31,
132 } IDAC_OutMode_TypeDef;
139 idacPRSSELCh0 = IDAC_CTRL_PRSSEL_PRSCH0,
140 idacPRSSELCh1 = IDAC_CTRL_PRSSEL_PRSCH1,
141 idacPRSSELCh2 = IDAC_CTRL_PRSSEL_PRSCH2,
142 idacPRSSELCh3 = IDAC_CTRL_PRSSEL_PRSCH3,
143 #if defined( IDAC_CTRL_PRSSEL_PRSCH4 )
144 idacPRSSELCh4 = IDAC_CTRL_PRSSEL_PRSCH4,
145 idacPRSSELCh5 = IDAC_CTRL_PRSSEL_PRSCH5,
147 #if defined( IDAC_CTRL_PRSSEL_PRSCH6 )
148 idacPRSSELCh6 = IDAC_CTRL_PRSSEL_PRSCH6,
149 idacPRSSELCh7 = IDAC_CTRL_PRSSEL_PRSCH7,
150 idacPRSSELCh8 = IDAC_CTRL_PRSSEL_PRSCH8,
151 idacPRSSELCh9 = IDAC_CTRL_PRSSEL_PRSCH9,
152 idacPRSSELCh10 = IDAC_CTRL_PRSSEL_PRSCH10,
153 idacPRSSELCh11 = IDAC_CTRL_PRSSEL_PRSCH11,
155 } IDAC_PRSSEL_TypeDef;
161 idacCurrentRange0 = IDAC_CURPROG_RANGESEL_RANGE0,
162 idacCurrentRange1 = IDAC_CURPROG_RANGESEL_RANGE1,
163 idacCurrentRange2 = IDAC_CURPROG_RANGESEL_RANGE2,
164 idacCurrentRange3 = IDAC_CURPROG_RANGESEL_RANGE3,
165 } IDAC_Range_TypeDef;
178 IDAC_OutMode_TypeDef outMode;
191 IDAC_PRSSEL_TypeDef prsSel;
199 #if defined( _IDAC_CTRL_OUTMODE_MASK )
200 #define IDAC_INIT_DEFAULT \
208 #elif ( _IDAC_CTRL_APORTOUTSEL_MASK )
209 #define IDAC_INIT_DEFAULT \
212 idacOutputAPORT1XCH0, \
225 void IDAC_Init(IDAC_TypeDef *idac,
const IDAC_Init_TypeDef *init);
226 void IDAC_Enable(IDAC_TypeDef *idac,
bool enable);
227 void IDAC_Reset(IDAC_TypeDef *idac);
228 void IDAC_MinimalOutputTransitionMode(IDAC_TypeDef *idac,
bool enable);
229 void IDAC_RangeSet(IDAC_TypeDef *idac,
const IDAC_Range_TypeDef range);
230 void IDAC_StepSet(IDAC_TypeDef *idac,
const uint32_t step);
231 void IDAC_OutEnable(IDAC_TypeDef *idac,
bool enable);
234 #if defined( _IDAC_IEN_MASK )
246 __STATIC_INLINE
void IDAC_IntClear(IDAC_TypeDef *idac, uint32_t flags)
263 __STATIC_INLINE
void IDAC_IntDisable(IDAC_TypeDef *idac, uint32_t flags)
285 __STATIC_INLINE
void IDAC_IntEnable(IDAC_TypeDef *idac, uint32_t flags)
305 __STATIC_INLINE uint32_t IDAC_IntGet(IDAC_TypeDef *idac)
330 __STATIC_INLINE uint32_t IDAC_IntGetEnabled(IDAC_TypeDef *idac)
339 return idac->IF & ien;
354 __STATIC_INLINE
void IDAC_IntSet(IDAC_TypeDef *idac, uint32_t flags)
CMSIS Cortex-M Peripheral Access Layer for Silicon Laboratories microcontroller devices.