3.3.9 SAFE_PLIB_PAC
Set of safe functions for setting up and controlling the PAC peripheral.
#define PAC_ERROR_INVALID_PARAMETER (0x2U)
typedef enum
{
/* No Action */
PAC_PROTECTION_OFF = 0,
/* Clear the peripheral write control protection */
PAC_PROTECTION_CLEAR = 1,
/* Set the peripheral write control protection */
PAC_PROTECTION_SET = 2,
/* Set and lock the peripheral write control until the next hardware reset */
PAC_PROTECTION_SET_AND_LOCK = 3,
PAC_PROTECTION_Max = 4
} PAC_PROTECTION;
typedef enum
{
/* Instance Id for Peripheral AC */
PAC_PERIPHERAL_AC = ID_AC,
/* Instance Id for Peripheral ADC0 */
PAC_PERIPHERAL_ADC0 = ID_ADC0,
/* Instance Id for Peripheral ADC1 */
PAC_PERIPHERAL_ADC1 = ID_ADC1,
/* Instance Id for Peripheral CAN0 */
PAC_PERIPHERAL_CAN0 = ID_CAN0,
/* Instance Id for Peripheral CAN1 */
PAC_PERIPHERAL_CAN1 = ID_CAN1,
/* Instance Id for Peripheral CCL */
PAC_PERIPHERAL_CCL = ID_CCL,
/* Instance Id for Peripheral DAC */
PAC_PERIPHERAL_DAC = ID_DAC,
/* Instance Id for Peripheral DMAC */
PAC_PERIPHERAL_DMAC = ID_DMAC,
/* Instance Id for Peripheral DSU */
PAC_PERIPHERAL_DSU = ID_DSU,
/* Instance Id for Peripheral EIC */
PAC_PERIPHERAL_EIC = ID_EIC,
/* Instance Id for Peripheral EVSYS */
PAC_PERIPHERAL_EVSYS = ID_EVSYS,
/* Instance Id for Peripheral FREQM */
PAC_PERIPHERAL_FREQM = ID_FREQM,
/* Instance Id for Peripheral GCLK */
PAC_PERIPHERAL_GCLK = ID_GCLK,
/* Instance Id for Peripheral HMATRIXHS */
PAC_PERIPHERAL_HMATRIXHS = ID_HMATRIXHS,
/* Instance Id for Peripheral MCLK */
PAC_PERIPHERAL_MCLK = ID_MCLK,
/* Instance Id for Peripheral MTB */
PAC_PERIPHERAL_MTB = ID_MTB,
/* Instance Id for Peripheral NVMCTRL */
PAC_PERIPHERAL_NVMCTRL = ID_NVMCTRL,
/* Instance Id for Peripheral OSCCTRL */
PAC_PERIPHERAL_OSCCTRL = ID_OSCCTRL,
/* Instance Id for Peripheral OSC32KCTRL */
PAC_PERIPHERAL_OSC32KCTRL = ID_OSC32KCTRL,
/* Instance Id for Peripheral PAC */
PAC_PERIPHERAL_PAC = ID_PAC,
/* Instance Id for Peripheral PM */
PAC_PERIPHERAL_PM = ID_PM,
/* Instance Id for Peripheral PORT */
PAC_PERIPHERAL_PORT = ID_PORT,
/* Instance Id for Peripheral PTC */
PAC_PERIPHERAL_PTC = ID_PTC,
/* Instance Id for Peripheral RSTC */
PAC_PERIPHERAL_RSTC = ID_RSTC,
/* Instance Id for Peripheral RTC */
PAC_PERIPHERAL_RTC = ID_RTC,
/* Instance Id for Peripheral SDADC */
PAC_PERIPHERAL_SDADC = ID_SDADC,
/* Instance Id for Peripheral SERCOM0 */
PAC_PERIPHERAL_SERCOM0 = ID_SERCOM0,
/* Instance Id for Peripheral SERCOM1 */
PAC_PERIPHERAL_SERCOM1 = ID_SERCOM1,
/* Instance Id for Peripheral SERCOM2 */
PAC_PERIPHERAL_SERCOM2 = ID_SERCOM2,
/* Instance Id for Peripheral SERCOM3 */
PAC_PERIPHERAL_SERCOM3 = ID_SERCOM3,
/* Instance Id for Peripheral SERCOM4 */
PAC_PERIPHERAL_SERCOM4 = ID_SERCOM4,
/* Instance Id for Peripheral SERCOM5 */
PAC_PERIPHERAL_SERCOM5 = ID_SERCOM5,
/* Instance Id for Peripheral SUPC */
PAC_PERIPHERAL_SUPC = ID_SUPC,
/* Instance Id for Peripheral TC0 */
PAC_PERIPHERAL_TC0 = ID_TC0,
/* Instance Id for Peripheral TC1 */
PAC_PERIPHERAL_TC1 = ID_TC1,
/* Instance Id for Peripheral TC2 */
PAC_PERIPHERAL_TC2 = ID_TC2,
/* Instance Id for Peripheral TC3 */
PAC_PERIPHERAL_TC3 = ID_TC3,
/* Instance Id for Peripheral TC4 */
PAC_PERIPHERAL_TC4 = ID_TC4,
/* Instance Id for Peripheral TCC0 */
PAC_PERIPHERAL_TCC0 = ID_TCC0,
/* Instance Id for Peripheral TCC1 */
PAC_PERIPHERAL_TCC1 = ID_TCC1,
/* Instance Id for Peripheral TCC2 */
PAC_PERIPHERAL_TCC2 = ID_TCC2,
/* Instance Id for Peripheral TSENS */
PAC_PERIPHERAL_TSENS = ID_TSENS,
/* Instance Id for Peripheral WDT */
PAC_PERIPHERAL_WDT = ID_WDT,
PAC_PERIPHERAL_NONE = -1
} PAC_PERIPHERAL;
typedef void (*PAC_CALLBACK)( uintptr_t context );
typedef struct
{
PAC_CALLBACK callback;
uintptr_t context;
} PAC_CALLBACK_OBJ;
