3.3.1 SAFE_PLIB_ADC
Set of safe functions for setting up and controlling the ADC peripheral.
#define ADC_STATUS_NONE 0U
#define ADC_STATUS_RESRDY ADC_INTFLAG_RESRDY_Msk
#define ADC_STATUS_WINMON ADC_INTFLAG_WINMON_Msk
#define ADC_STATUS_MASK (ADC_STATUS_RESRDY | ADC_STATUS_OVERRUN | ADC_STATUS_WINMON)
#define ADC_STATUS_INVALID 0xFFFFFFFFU
#define ADC_TIMEOUT (10000)
#define ADC_ERROR_CALLBACK_NOT_REGISTERED (0x1U)
#define ADC_ERROR_INVALID_PARAMETER (0x2U)
#define ADC_ERROR_TIMEOUT (0x3U)
/* The following data type definitions are used by the functions in this
interface and should be considered part it.
*/
typedef enum
{
ADC_POSINPUT_AIN0 = ADC_INPUTCTRL_MUXPOS_AIN0,
ADC_POSINPUT_AIN1 = ADC_INPUTCTRL_MUXPOS_AIN1,
ADC_POSINPUT_AIN2 = ADC_INPUTCTRL_MUXPOS_AIN2,
ADC_POSINPUT_AIN3 = ADC_INPUTCTRL_MUXPOS_AIN3,
ADC_POSINPUT_AIN4 = ADC_INPUTCTRL_MUXPOS_AIN4,
ADC_POSINPUT_AIN5 = ADC_INPUTCTRL_MUXPOS_AIN5,
ADC_POSINPUT_AIN6 = ADC_INPUTCTRL_MUXPOS_AIN6,
ADC_POSINPUT_AIN7 = ADC_INPUTCTRL_MUXPOS_AIN7,
ADC_POSINPUT_AIN8 = ADC_INPUTCTRL_MUXPOS_AIN8,
ADC_POSINPUT_AIN9 = ADC_INPUTCTRL_MUXPOS_AIN9,
ADC_POSINPUT_AIN10 = ADC_INPUTCTRL_MUXPOS_AIN10,
ADC_POSINPUT_AIN11 = ADC_INPUTCTRL_MUXPOS_AIN11,
ADC_POSINPUT_BANDGAP = ADC_INPUTCTRL_MUXPOS_BANDGAP,
ADC_POSINPUT_SCALEDCOREVCC = ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC,
ADC_POSINPUT_SCALEDIOVCC = ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC,
ADC_POSINPUT_DAC = ADC_INPUTCTRL_MUXPOS_DAC,
}ADC_POSINPUT;
// *****************************************************************************
typedef enum
{
ADC_NEGINPUT_AIN0 = ADC_INPUTCTRL_MUXNEG_AIN0,
ADC_NEGINPUT_AIN1 = ADC_INPUTCTRL_MUXNEG_AIN1,
ADC_NEGINPUT_AIN2 = ADC_INPUTCTRL_MUXNEG_AIN2,
ADC_NEGINPUT_AIN3 = ADC_INPUTCTRL_MUXNEG_AIN3,
ADC_NEGINPUT_AIN4 = ADC_INPUTCTRL_MUXNEG_AIN4,
ADC_NEGINPUT_AIN5 = ADC_INPUTCTRL_MUXNEG_AIN5,
ADC_NEGINPUT_GND = ADC_INPUTCTRL_MUXNEG_GND,
}ADC_NEGINPUT;
typedef uint32_t ADC_STATUS;
typedef enum
{
ADC_WINMODE_DISABLED = ADC_CTRLC_WINMODE_DISABLE_Val,
ADC_WINMODE_GREATER_THAN_WINLT = ADC_CTRLC_WINMODE_MODE1_Val,
ADC_WINMODE_LESS_THAN_WINUT = ADC_CTRLC_WINMODE_MODE2_Val,
ADC_WINMODE_BETWEEN_WINLT_AND_WINUT = ADC_CTRLC_WINMODE_MODE3_Val,
ADC_WINMODE_OUTSIDE_WINLT_AND_WINUT = ADC_CTRLC_WINMODE_MODE4_Val
}ADC_WINMODE;
typedef void (*ADC_CALLBACK)(ADC_STATUS status, uintptr_t context);
typedef struct
{
ADC_CALLBACK callback;
uintptr_t context;
} ADC_CALLBACK_OBJ;
