56 #define MXC_V_ADC_CTRL_ADC_CHSEL_AIN0 ((uint32_t)(0x00000000UL)) 57 #define MXC_V_ADC_CTRL_ADC_CHSEL_AIN1 ((uint32_t)(0x00000001UL)) 58 #define MXC_V_ADC_CTRL_ADC_CHSEL_AIN2 ((uint32_t)(0x00000002UL)) 59 #define MXC_V_ADC_CTRL_ADC_CHSEL_AIN3 ((uint32_t)(0x00000003UL)) 60 #define MXC_V_ADC_CTRL_ADC_CHSEL_AIN4 ((uint32_t)(0x00000004UL)) 61 #define MXC_V_ADC_CTRL_ADC_CHSEL_AIN5 ((uint32_t)(0x00000005UL)) 62 #define MXC_V_ADC_CTRL_ADC_CHSEL_AIN6 ((uint32_t)(0x00000006UL)) 63 #define MXC_V_ADC_CTRL_ADC_CHSEL_AIN7 ((uint32_t)(0x00000007UL)) 64 #define MXC_V_ADC_CTRL_ADC_CHSEL_VCOREA ((uint32_t)(0x00000008UL)) 65 #define MXC_V_ADC_CTRL_ADC_CHSEL_VCOREB ((uint32_t)(0x00000009UL)) 66 #define MXC_V_ADC_CTRL_ADC_CHSEL_VRXOUT ((uint32_t)(0x0000000AUL)) 67 #define MXC_V_ADC_CTRL_ADC_CHSEL_VTXOUT ((uint32_t)(0x0000000BUL)) 68 #define MXC_V_ADC_CTRL_ADC_CHSEL_VDDA ((uint32_t)(0x0000000CUL)) 69 #define MXC_V_ADC_CTRL_ADC_CHSEL_VDDB ((uint32_t)(0x0000000DUL)) 70 #define MXC_V_ADC_CTRL_ADC_CHSEL_VDDI0 ((uint32_t)(0x0000000EUL)) 71 #define MXC_V_ADC_CTRL_ADC_CHSEL_VDDI0H ((uint32_t)(0x0000000FUL)) 72 #define MXC_V_ADC_CTRL_ADC_CHSEL_VREGI ((uint32_t)(0x00000010UL)) 82 MXC_ADC_CH_0 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN0,
83 MXC_ADC_CH_1 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN1,
84 MXC_ADC_CH_2 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN2,
85 MXC_ADC_CH_3 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN3,
86 MXC_ADC_CH_4 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN4,
87 MXC_ADC_CH_5 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN5,
88 MXC_ADC_CH_6 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN6,
89 MXC_ADC_CH_7 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN7,
90 MXC_ADC_CH_VCOREA = MXC_V_ADC_CTRL_ADC_CHSEL_VCOREA,
91 MXC_ADC_CH_VCOREB = MXC_V_ADC_CTRL_ADC_CHSEL_VCOREB,
92 MXC_ADC_CH_VRXOUT = MXC_V_ADC_CTRL_ADC_CHSEL_VRXOUT,
93 MXC_ADC_CH_VTXOUT = MXC_V_ADC_CTRL_ADC_CHSEL_VTXOUT,
94 MXC_ADC_CH_VDDA = MXC_V_ADC_CTRL_ADC_CHSEL_VDDA,
95 MXC_ADC_CH_VDDB = MXC_V_ADC_CTRL_ADC_CHSEL_VDDB,
96 MXC_ADC_CH_VDDIO = MXC_V_ADC_CTRL_ADC_CHSEL_VDDI0,
97 MXC_ADC_CH_VDDIOH = MXC_V_ADC_CTRL_ADC_CHSEL_VDDI0H,
98 MXC_ADC_CH_VREGI = MXC_V_ADC_CTRL_ADC_CHSEL_VREGI,
106 MXC_ADC_COMP_0 = MXC_F_MCR_AINCOMP_AINCOMP0PD,
107 MXC_ADC_COMP_1 = MXC_F_MCR_AINCOMP_AINCOMP1PD,
108 MXC_ADC_COMP_2 = MXC_F_MCR_AINCOMP_AINCOMP2PD,
109 MXC_ADC_COMP_3 = MXC_F_MCR_AINCOMP_AINCOMP3PD,
110 MXC_ADC_COMP_HYST_0 = 1 << MXC_F_MCR_AINCOMP_AINCOMPHYST_POS,
112 MXC_ADC_COMP_HYST_1 = 2 << MXC_F_MCR_AINCOMP_AINCOMPHYST_POS,
151 typedef void (*mxc_adc_complete_cb_t) (
void * req,
int error);
155 typedef void (*mxc_adc_monitor_cb_t) (
void * req,
int error);
159 mxc_adc_monitor_t monitor;
160 mxc_adc_scale_t scale;
161 mxc_adc_chsel_t channel;
164 mxc_adc_monitor_cb_t callback;
165 } mxc_adc_monitor_req_t;
168 mxc_adc_chsel_t channel;
169 mxc_adc_scale_t scale;
171 mxc_adc_complete_cb_t callback;
172 } mxc_adc_conversion_req_t;
180 int MXC_ADC_Init (
void);
187 int MXC_ADC_Shutdown (
void);
194 int MXC_ADC_Busy (
void);
201 void MXC_ADC_EnableInt (uint32_t flags);
208 void MXC_ADC_DisableInt (uint32_t flags);
215 int MXC_ADC_GetFlags (
void);
222 void MXC_ADC_ClearFlags (uint32_t flags);
231 int MXC_ADC_SetConversionSpeed (uint32_t hz);
238 int MXC_ADC_GetConversionSpeed (
void);
245 void MXC_ADC_SetDataAlignment (
int msbJustify);
255 void MXC_ADC_SetExtScale (mxc_adc_scale_t scale);
262 void MXC_ADC_RefSelect (mxc_adc_ref_t ref);
270 void MXC_ADC_EnableMonitor (mxc_adc_monitor_t monitors);
278 void MXC_ADC_DisableMonitor (mxc_adc_monitor_t monitors);
287 void MXC_ADC_SetMonitorHighThreshold (mxc_adc_monitor_t monitor, uint32_t threshold);
296 int MXC_ADC_GetMonitorHighThreshold (mxc_adc_monitor_t monitor);
305 void MXC_ADC_SetMonitorLowThreshold (mxc_adc_monitor_t monitor, uint32_t threshold);
314 int MXC_ADC_GetMonitorLowThreshold (mxc_adc_monitor_t monitor);
323 void MXC_ADC_SetMonitorChannel (mxc_adc_monitor_t monitor, mxc_adc_chsel_t channel);
332 int MXC_ADC_GetMonitorChannel (mxc_adc_monitor_t monitor);
342 void MXC_ADC_EnableMonitorAsync (mxc_adc_monitor_t monitor, mxc_adc_monitor_cb_t callback);
349 void MXC_ADC_DisableMonitorAsync (mxc_adc_monitor_t monitor);
359 int MXC_ADC_StartConversion (mxc_adc_chsel_t channel);
372 int MXC_ADC_StartConversionAsync (mxc_adc_chsel_t channel, mxc_adc_complete_cb_t callback);
380 int MXC_ADC_Handler (
void);
390 int MXC_ADC_Convert (mxc_adc_conversion_req_t req);
401 int MXC_ADC_ConvertAsync (mxc_adc_conversion_req_t req);
408 void MXC_ADC_Monitor (mxc_adc_monitor_req_t req);
417 void MXC_ADC_MonitorAsync (mxc_adc_monitor_req_t req);
424 void MXC_ADC_EnableComparators (uint32_t mask);
431 void MXC_ADC_DisableComparators (uint32_t mask);
439 int MXC_ADC_GetData (uint16_t *outdata);