27#ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_ADC_H_
28#define LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_ADC_H_
46#define MXC_V_ADC_CTRL_ADC_CHSEL_AIN0 ((uint32_t)(0x00000000UL))
47#define MXC_V_ADC_CTRL_ADC_CHSEL_AIN1 ((uint32_t)(0x00000001UL))
48#define MXC_V_ADC_CTRL_ADC_CHSEL_AIN2 ((uint32_t)(0x00000002UL))
49#define MXC_V_ADC_CTRL_ADC_CHSEL_AIN3 ((uint32_t)(0x00000003UL))
50#define MXC_V_ADC_CTRL_ADC_CHSEL_AIN4 ((uint32_t)(0x00000004UL))
51#define MXC_V_ADC_CTRL_ADC_CHSEL_AIN5 ((uint32_t)(0x00000005UL))
52#define MXC_V_ADC_CTRL_ADC_CHSEL_AIN6 ((uint32_t)(0x00000006UL))
53#define MXC_V_ADC_CTRL_ADC_CHSEL_AIN7 ((uint32_t)(0x00000007UL))
54#define MXC_V_ADC_CTRL_ADC_CHSEL_VCOREA ((uint32_t)(0x00000008UL))
55#define MXC_V_ADC_CTRL_ADC_CHSEL_VCOREB ((uint32_t)(0x00000009UL))
56#define MXC_V_ADC_CTRL_ADC_CHSEL_VRXOUT ((uint32_t)(0x0000000AUL))
57#define MXC_V_ADC_CTRL_ADC_CHSEL_VTXOUT ((uint32_t)(0x0000000BUL))
58#define MXC_V_ADC_CTRL_ADC_CHSEL_VDDA ((uint32_t)(0x0000000CUL))
59#define MXC_V_ADC_CTRL_ADC_CHSEL_VDDB ((uint32_t)(0x0000000DUL))
60#define MXC_V_ADC_CTRL_ADC_CHSEL_VDDI0 ((uint32_t)(0x0000000EUL))
61#define MXC_V_ADC_CTRL_ADC_CHSEL_VDDI0H ((uint32_t)(0x0000000FUL))
62#define MXC_V_ADC_CTRL_ADC_CHSEL_VREGI ((uint32_t)(0x00000010UL))
71 MXC_ADC_CH_0 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN0,
72 MXC_ADC_CH_1 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN1,
73 MXC_ADC_CH_2 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN2,
74 MXC_ADC_CH_3 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN3,
75 MXC_ADC_CH_4 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN4,
76 MXC_ADC_CH_5 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN5,
77 MXC_ADC_CH_6 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN6,
78 MXC_ADC_CH_7 = MXC_V_ADC_CTRL_ADC_CHSEL_AIN7,
79 MXC_ADC_CH_VCOREA = MXC_V_ADC_CTRL_ADC_CHSEL_VCOREA,
80 MXC_ADC_CH_VCOREB = MXC_V_ADC_CTRL_ADC_CHSEL_VCOREB,
81 MXC_ADC_CH_VRXOUT = MXC_V_ADC_CTRL_ADC_CHSEL_VRXOUT,
82 MXC_ADC_CH_VTXOUT = MXC_V_ADC_CTRL_ADC_CHSEL_VTXOUT,
83 MXC_ADC_CH_VDDA = MXC_V_ADC_CTRL_ADC_CHSEL_VDDA,
84 MXC_ADC_CH_VDDB = MXC_V_ADC_CTRL_ADC_CHSEL_VDDB,
85 MXC_ADC_CH_VDDIO = MXC_V_ADC_CTRL_ADC_CHSEL_VDDI0,
86 MXC_ADC_CH_VDDIOH = MXC_V_ADC_CTRL_ADC_CHSEL_VDDI0H,
87 MXC_ADC_CH_VREGI = MXC_V_ADC_CTRL_ADC_CHSEL_VREGI,
95 MXC_ADC_COMP_0 = MXC_F_MCR_AINCOMP_AINCOMP0PD,
96 MXC_ADC_COMP_1 = MXC_F_MCR_AINCOMP_AINCOMP1PD,
97 MXC_ADC_COMP_2 = MXC_F_MCR_AINCOMP_AINCOMP2PD,
98 MXC_ADC_COMP_3 = MXC_F_MCR_AINCOMP_AINCOMP3PD,
99 MXC_ADC_COMP_HYST_0 = 1 << MXC_F_MCR_AINCOMP_AINCOMPHYST_POS,
101 MXC_ADC_COMP_HYST_1 = 2 << MXC_F_MCR_AINCOMP_AINCOMPHYST_POS,
140typedef void (*mxc_adc_complete_cb_t)(
void *req,
int error);
143typedef void (*mxc_adc_monitor_cb_t)(
void *req,
int error);
152 mxc_adc_monitor_cb_t callback;
153} mxc_adc_monitor_req_t;
159 mxc_adc_complete_cb_t callback;
160} mxc_adc_conversion_req_t;
Registers, Bit Masks and Bit Positions for the ADC Peripheral Module.
int MXC_ADC_GetMonitorHighThreshold(mxc_adc_monitor_t monitor)
Set the high limit for a specific monitor.
void MXC_ADC_ClearFlags(uint32_t flags)
Performs the ADC startup procedure.
mxc_adc_monitor_t
Definition: adc.h:110
int MXC_ADC_GetData(uint16_t *outdata)
Gets the result from the previous ADC conversion.
void MXC_ADC_EnableMonitorAsync(mxc_adc_monitor_t monitor, mxc_adc_monitor_cb_t callback)
Set a callback to be called when a monitor goes out of range.
void MXC_ADC_DisableMonitor(mxc_adc_monitor_t monitors)
Disable channel high/low monitor.
int MXC_ADC_GetConversionSpeed(void)
Gets the current ADC conversion speed.
int MXC_ADC_GetMonitorLowThreshold(mxc_adc_monitor_t monitor)
Set the low limit for a specific monitor.
int MXC_ADC_GetMonitorChannel(mxc_adc_monitor_t monitor)
Get the channel used by a monitor.
void MXC_ADC_SetDataAlignment(int msbJustify)
Gets the current ADC conversion speed.
void MXC_ADC_SetExtScale(mxc_adc_scale_t scale)
Sets the scaling used for conversions on external channels.
int MXC_ADC_Busy(void)
Checks if the ADC is busy (performing a conversion)
void MXC_ADC_DisableComparators(uint32_t mask)
Disable the Comparators.
void MXC_ADC_RefSelect(mxc_adc_ref_t ref)
Select the ADC reference source.
void MXC_ADC_DisableMonitorAsync(mxc_adc_monitor_t monitor)
Disable a callback for a monitor.
void MXC_ADC_EnableMonitor(mxc_adc_monitor_t monitors)
Enable channel high/low monitor.
int MXC_ADC_SetConversionSpeed(uint32_t hz)
Sets the ADC conversion speed.
void MXC_ADC_SetMonitorHighThreshold(mxc_adc_monitor_t monitor, uint32_t threshold)
Set the high limit for a specific monitor.
int MXC_ADC_StartConversion(mxc_adc_chsel_t channel)
Perform a conversion on a specific channel.
mxc_adc_chsel_t
Definition: adc.h:70
int MXC_ADC_ConvertAsync(mxc_adc_conversion_req_t *req)
Perform a conversion on a specific channel.
void MXC_ADC_EnableInt(uint32_t flags)
Enable specific ADC interrupts.
int MXC_ADC_Convert(mxc_adc_conversion_req_t *req)
Perform a conversion on a specific channel.
int MXC_ADC_Init(void)
Performs the ADC startup procedure.
mxc_adc_scale_t
Definition: adc.h:121
void MXC_ADC_SetMonitorChannel(mxc_adc_monitor_t monitor, mxc_adc_chsel_t channel)
Set a monitor to use a specific channel.
mxc_adc_ref_t
Definition: adc.h:134
int MXC_ADC_StartConversionAsync(mxc_adc_chsel_t channel, mxc_adc_complete_cb_t callback)
Perform a conversion on a specific channel.
void MXC_ADC_MonitorAsync(mxc_adc_monitor_req_t req)
Monitor a specific channel for an out of range event.
void MXC_ADC_Monitor(mxc_adc_monitor_req_t req)
Monitor a specific channel for an out of range event.
int MXC_ADC_GetFlags(void)
Performs the ADC startup procedure.
void MXC_ADC_EnableComparators(uint32_t mask)
Enable the Comparators.
int MXC_ADC_Handler(void)
Call this function from the ADC ISR when using Async API functions.
void MXC_ADC_DisableInt(uint32_t flags)
Disable specific ADC interrupts.
void MXC_ADC_SetMonitorLowThreshold(mxc_adc_monitor_t monitor, uint32_t threshold)
Set the low limit for a specific monitor.
int MXC_ADC_Shutdown(void)
Shuts down the ADC.
Registers, Bit Masks and Bit Positions for the MCR Peripheral Module.