CAT2 Peripheral Driver Library
Interrupt Functions

This set of functions are related to DSADC interrupts. More...

Functions

__STATIC_INLINE void Cy_DSADC_ClearInterrupt (PACSS_DCHAN_Type *base, uint32_t intrMask)
 Clears the specified interrupt for the specified DCHAN. More...
 
__STATIC_INLINE uint32_t Cy_DSADC_GetInterruptStatus (const PACSS_DCHAN_Type *base)
 Gets the interrupt status for the specified DCHAN. More...
 
__STATIC_INLINE void Cy_DSADC_SetInterrupt (PACSS_DCHAN_Type *base, uint32_t intrMask)
 Set the interrupt source to check if HW operates correctly or to use it as a SW interrupt. More...
 
__STATIC_INLINE uint32_t Cy_DSADC_GetInterruptMask (const PACSS_DCHAN_Type *base)
 Returns the interrupt mask for the specified DCHAN. More...
 
__STATIC_INLINE void Cy_DSADC_SetInterruptMask (PACSS_DCHAN_Type *base, uint32_t intrMask)
 Enables the specified interrupt for the specified DCHAN. More...
 
__STATIC_INLINE uint32_t Cy_DSADC_GetInterruptStatusMasked (const PACSS_DCHAN_Type *base)
 Returns the masked (enabled) interrupt status for the specified DCHAN. More...
 
__STATIC_INLINE uint32_t Cy_DSADC_GetInterruptCause (const PACSS_MMIO_Type *base)
 Get the interrupt pending for each DCHAN or System interrupt pending. More...
 
__STATIC_INLINE uint32_t Cy_DSADC_GetOverloadCause (const PACSS_DCHAN_Type *base)
 Get the overload cause to check if the modulator output is all 0 or all 1. More...
 
__STATIC_INLINE void Cy_DSADC_AgcClearInterrupt (PACSS_MMIO_Type *base)
 Clears the specified AGC MMIO interrupt. More...
 
__STATIC_INLINE bool Cy_DSADC_AgcGetInterruptStatus (PACSS_MMIO_Type *base)
 Returns the AGC MMIO interrupt status. More...
 
__STATIC_INLINE void Cy_DSADC_AgcSetInterrupt (PACSS_MMIO_Type *base)
 Write with '1' to set corresponding bit in interrupt request register. More...
 
__STATIC_INLINE bool Cy_DSADC_AgcGetInterruptMask (PACSS_MMIO_Type *base)
 Returns the AGC MMIO interrupt mask. More...
 
__STATIC_INLINE void Cy_DSADC_AgcSetInterruptMask (PACSS_MMIO_Type *base)
 Returns the masked (enabled) MMIO interrupt status. More...
 
__STATIC_INLINE bool Cy_DSADC_AgcGetInterruptStatusMasked (PACSS_MMIO_Type *base)
 Returns the result of the bitwise AND operation between the corresponding interrupt request and mask bits. More...
 

Detailed Description

This set of functions are related to DSADC interrupts.

Function Documentation

◆ Cy_DSADC_ClearInterrupt()

__STATIC_INLINE void Cy_DSADC_ClearInterrupt ( PACSS_DCHAN_Type *  base,
uint32_t  intrMask 
)

Clears the specified interrupt for the specified DCHAN.

Parameters
baseThe base address for the Digital Channel.
intrMaskThe bitmask of statuses to clear. Select one or more values from Interrupt Masks and "OR" them together.
Function Usage
/* Interrupt handler. */
void DCHAN0_Isr(void)
{
uint32_t intr_status, masked_status;
intr_status = Cy_DSADC_GetInterruptStatus(PACSS_DCHAN0);
masked_status = Cy_DSADC_GetInterruptStatusMasked(PACSS_DCHAN0);
/* Check if interrupt occurs due to overload. */
if(0 != (CY_DSADC_DCHAN_INTR_OVERLOAD & intr_status & masked_status))
{
/* Check what cause overload. */
if(0UL == Cy_DSADC_GetOverloadCause(PACSS_DCHAN0))
{
/* Overload is due to modulator output is all 0s. */
}
else
{
/* Overload is due to modulator output is all 1s. */
}
}
else
{
/* Process unexpected behavior. */
}
/* Clear all possible interrupt sources using combined interrupt mask. */
Cy_DSADC_ClearInterrupt(PACSS_DCHAN0, (uint32_t)(CY_DSADC_INTR_MASK));
}

◆ Cy_DSADC_GetInterruptStatus()

__STATIC_INLINE uint32_t Cy_DSADC_GetInterruptStatus ( const PACSS_DCHAN_Type *  base)

Gets the interrupt status for the specified DCHAN.

Parameters
baseThe base address for the Digital Channel.
Returns
The bitmask of interrupt statuses.
Function Usage
/* Interrupt handler. */
void DCHAN0_Isr(void)
{
uint32_t intr_status, masked_status;
intr_status = Cy_DSADC_GetInterruptStatus(PACSS_DCHAN0);
masked_status = Cy_DSADC_GetInterruptStatusMasked(PACSS_DCHAN0);
/* Check if interrupt occurs due to overload. */
if(0 != (CY_DSADC_DCHAN_INTR_OVERLOAD & intr_status & masked_status))
{
/* Check what cause overload. */
if(0UL == Cy_DSADC_GetOverloadCause(PACSS_DCHAN0))
{
/* Overload is due to modulator output is all 0s. */
}
else
{
/* Overload is due to modulator output is all 1s. */
}
}
else
{
/* Process unexpected behavior. */
}
/* Clear all possible interrupt sources using combined interrupt mask. */
Cy_DSADC_ClearInterrupt(PACSS_DCHAN0, (uint32_t)(CY_DSADC_INTR_MASK));
}

◆ Cy_DSADC_SetInterrupt()

__STATIC_INLINE void Cy_DSADC_SetInterrupt ( PACSS_DCHAN_Type *  base,
uint32_t  intrMask 
)

Set the interrupt source to check if HW operates correctly or to use it as a SW interrupt.

Parameters
baseThe base address for the Digital Channel.
intrMaskThe bit field determines which interrupt will be triggered. Select one or more values from Interrupt Masks and "OR" them together.
Function Usage
/* Scenario: Set interrupt for overload. */
/* Hook interrupt service routine. */
(void) Cy_SysInt_Init(&DCHAN0IntrConfig, &DCHAN0_Isr);
uint32_t intrMask;
intrMask = Cy_DSADC_GetInterruptMask(PACSS_DCHAN0);
/* Check whether overload interrupt source is enabled. */
if ((uint32_t) CY_DSADC_DCHAN_INTR_OVERLOAD != (intrMask & (uint32_t)CY_DSADC_DCHAN_INTR_OVERLOAD))
{
/* Enable overload interrupt. */
Cy_DSADC_SetInterruptMask(PACSS_DCHAN0, (uint32_t)CY_DSADC_DCHAN_INTR_OVERLOAD);
}
/* Enable interrupt for interrupt controller. */
NVIC_EnableIRQ(DCHAN0IntrConfig.intrSrc);
/* Set overload interrupt. */
Cy_DSADC_SetInterrupt(PACSS_DCHAN0, (uint32_t)(CY_DSADC_DCHAN_INTR_OVERLOAD));

◆ Cy_DSADC_GetInterruptMask()

__STATIC_INLINE uint32_t Cy_DSADC_GetInterruptMask ( const PACSS_DCHAN_Type *  base)

Returns the interrupt mask for the specified DCHAN.

Parameters
baseThe base address for the Digital Channel.
Returns
The bit field determines which status changes can cause an interrupt.
Function Usage
/* Scenario: Set interrupt for overload. */
/* Hook interrupt service routine. */
(void) Cy_SysInt_Init(&DCHAN0IntrConfig, &DCHAN0_Isr);
uint32_t intrMask;
intrMask = Cy_DSADC_GetInterruptMask(PACSS_DCHAN0);
/* Check whether overload interrupt source is enabled. */
if ((uint32_t) CY_DSADC_DCHAN_INTR_OVERLOAD != (intrMask & (uint32_t)CY_DSADC_DCHAN_INTR_OVERLOAD))
{
/* Enable overload interrupt. */
Cy_DSADC_SetInterruptMask(PACSS_DCHAN0, (uint32_t)CY_DSADC_DCHAN_INTR_OVERLOAD);
}
/* Enable interrupt for interrupt controller. */
NVIC_EnableIRQ(DCHAN0IntrConfig.intrSrc);
/* Set overload interrupt. */
Cy_DSADC_SetInterrupt(PACSS_DCHAN0, (uint32_t)(CY_DSADC_DCHAN_INTR_OVERLOAD));

◆ Cy_DSADC_SetInterruptMask()

__STATIC_INLINE void Cy_DSADC_SetInterruptMask ( PACSS_DCHAN_Type *  base,
uint32_t  intrMask 
)

Enables the specified interrupt for the specified DCHAN.

Parameters
baseThe base address for the Digital Channel.
intrMaskThe bit field determines which status changes can cause an interrupt. Select one or more values from Interrupt Masks and "OR" them together.
Function Usage
/* Scenario: Set interrupt for overload. */
/* Hook interrupt service routine. */
(void) Cy_SysInt_Init(&DCHAN0IntrConfig, &DCHAN0_Isr);
uint32_t intrMask;
intrMask = Cy_DSADC_GetInterruptMask(PACSS_DCHAN0);
/* Check whether overload interrupt source is enabled. */
if ((uint32_t) CY_DSADC_DCHAN_INTR_OVERLOAD != (intrMask & (uint32_t)CY_DSADC_DCHAN_INTR_OVERLOAD))
{
/* Enable overload interrupt. */
Cy_DSADC_SetInterruptMask(PACSS_DCHAN0, (uint32_t)CY_DSADC_DCHAN_INTR_OVERLOAD);
}
/* Enable interrupt for interrupt controller. */
NVIC_EnableIRQ(DCHAN0IntrConfig.intrSrc);
/* Set overload interrupt. */
Cy_DSADC_SetInterrupt(PACSS_DCHAN0, (uint32_t)(CY_DSADC_DCHAN_INTR_OVERLOAD));

◆ Cy_DSADC_GetInterruptStatusMasked()

__STATIC_INLINE uint32_t Cy_DSADC_GetInterruptStatusMasked ( const PACSS_DCHAN_Type *  base)

Returns the masked (enabled) interrupt status for the specified DCHAN.

Parameters
baseThe base address for the Digital Channel.
Returns
Bitwise AND of the interrupt request and mask registers.
Function Usage
/* Interrupt handler. */
void DCHAN0_Isr(void)
{
uint32_t intr_status, masked_status;
intr_status = Cy_DSADC_GetInterruptStatus(PACSS_DCHAN0);
masked_status = Cy_DSADC_GetInterruptStatusMasked(PACSS_DCHAN0);
/* Check if interrupt occurs due to overload. */
if(0 != (CY_DSADC_DCHAN_INTR_OVERLOAD & intr_status & masked_status))
{
/* Check what cause overload. */
if(0UL == Cy_DSADC_GetOverloadCause(PACSS_DCHAN0))
{
/* Overload is due to modulator output is all 0s. */
}
else
{
/* Overload is due to modulator output is all 1s. */
}
}
else
{
/* Process unexpected behavior. */
}
/* Clear all possible interrupt sources using combined interrupt mask. */
Cy_DSADC_ClearInterrupt(PACSS_DCHAN0, (uint32_t)(CY_DSADC_INTR_MASK));
}

◆ Cy_DSADC_GetInterruptCause()

__STATIC_INLINE uint32_t Cy_DSADC_GetInterruptCause ( const PACSS_MMIO_Type *  base)

Get the interrupt pending for each DCHAN or System interrupt pending.

Parameters
baseThe pointer to the MMIO instance of the PACSS.
Returns
The bit field determines which DCHAN or System interrupt pending cause an interrupt. See Interrupt Cause Masks
Name Value
CY_DSADC_MMIO_INTR_CAUSE_DCH0 0x00000001UL (bit0)
CY_DSADC_MMIO_INTR_CAUSE_DCH1 0x00000002UL (bit1)
CY_DSADC_MMIO_INTR_CAUSE_DCH2 0x00000004UL (bit2)
CY_DSADC_MMIO_INTR_CAUSE_DCH3 0x00000008UL (bit3)
CY_DSADC_MMIO_INTR_CAUSE_PACSS0x00000010UL (bit4)
Function Usage
/* Scenario: After an MMIO interrupt occurs check the cause of the interrupt in an ISR handler. */
uint32_t status;
status = Cy_DSADC_GetInterruptCause(PACSS_MMIO);
{
/* Process interrupt. */
}

◆ Cy_DSADC_GetOverloadCause()

__STATIC_INLINE uint32_t Cy_DSADC_GetOverloadCause ( const PACSS_DCHAN_Type *  base)

Get the overload cause to check if the modulator output is all 0 or all 1.

Parameters
baseThe base address for the Digital Channel.
Returns
Get the overload cause value.
Note
To be read after overload interrupt issues. If read returns 0, overload is due to all 0s. If read returns 1, overload is due to all 1s.
Function Usage
/* Interrupt handler. */
void DCHAN0_Isr(void)
{
uint32_t intr_status, masked_status;
intr_status = Cy_DSADC_GetInterruptStatus(PACSS_DCHAN0);
masked_status = Cy_DSADC_GetInterruptStatusMasked(PACSS_DCHAN0);
/* Check if interrupt occurs due to overload. */
if(0 != (CY_DSADC_DCHAN_INTR_OVERLOAD & intr_status & masked_status))
{
/* Check what cause overload. */
if(0UL == Cy_DSADC_GetOverloadCause(PACSS_DCHAN0))
{
/* Overload is due to modulator output is all 0s. */
}
else
{
/* Overload is due to modulator output is all 1s. */
}
}
else
{
/* Process unexpected behavior. */
}
/* Clear all possible interrupt sources using combined interrupt mask. */
Cy_DSADC_ClearInterrupt(PACSS_DCHAN0, (uint32_t)(CY_DSADC_INTR_MASK));
}

◆ Cy_DSADC_AgcClearInterrupt()

__STATIC_INLINE void Cy_DSADC_AgcClearInterrupt ( PACSS_MMIO_Type *  base)

Clears the specified AGC MMIO interrupt.

Parameters
baseThe pointer to the MMIO instance of the PACSS.
Function Usage
/* Interrupt handler. */
void AGC_Isr(void)
{
bool intr_status, masked_status;
intr_status = Cy_DSADC_AgcGetInterruptStatus(PACSS_MMIO);
masked_status = Cy_DSADC_AgcGetInterruptStatusMasked(PACSS_MMIO);
/* Check if interrupt occurs due to AGC. */
if(false != (intr_status && masked_status))
{
/* Process interrupt. */
}
else
{
/* Process unexpected behavior. */
}
/* Clear AGC interrupt. */
}

◆ Cy_DSADC_AgcGetInterruptStatus()

__STATIC_INLINE bool Cy_DSADC_AgcGetInterruptStatus ( PACSS_MMIO_Type *  base)

Returns the AGC MMIO interrupt status.

Parameters
baseThe pointer to the MMIO instance of the PACSS.
Returns
Interrupt status.
Function Usage
/* Interrupt handler. */
void AGC_Isr(void)
{
bool intr_status, masked_status;
intr_status = Cy_DSADC_AgcGetInterruptStatus(PACSS_MMIO);
masked_status = Cy_DSADC_AgcGetInterruptStatusMasked(PACSS_MMIO);
/* Check if interrupt occurs due to AGC. */
if(false != (intr_status && masked_status))
{
/* Process interrupt. */
}
else
{
/* Process unexpected behavior. */
}
/* Clear AGC interrupt. */
}

◆ Cy_DSADC_AgcSetInterrupt()

__STATIC_INLINE void Cy_DSADC_AgcSetInterrupt ( PACSS_MMIO_Type *  base)

Write with '1' to set corresponding bit in interrupt request register.

Can be used to set interrupts for firmware testing.

Parameters
baseThe pointer to the MMIO instance of the PACSS.
Function Usage
/* Scenario: Set interrupt for agc. */
/* Hook interrupt service routine. */
(void) Cy_SysInt_Init(&AgcIntrConfig, &AGC_Isr);
bool intrMask;
intrMask = Cy_DSADC_AgcGetInterruptMask(PACSS_MMIO);
/* Check whether agc interrupt source is enabled. */
if (true != intrMask)
{
/* Enable AGC interrupt. */
}
/* Enable interrupt for interrupt controller. */
NVIC_EnableIRQ(AgcIntrConfig.intrSrc);
/* Set AGC interrupt. */

◆ Cy_DSADC_AgcGetInterruptMask()

__STATIC_INLINE bool Cy_DSADC_AgcGetInterruptMask ( PACSS_MMIO_Type *  base)

Returns the AGC MMIO interrupt mask.

Parameters
baseThe pointer to the MMIO instance of the PACSS.
Returns
The mask interrupt status.
Function Usage
/* Scenario: Set interrupt for agc. */
/* Hook interrupt service routine. */
(void) Cy_SysInt_Init(&AgcIntrConfig, &AGC_Isr);
bool intrMask;
intrMask = Cy_DSADC_AgcGetInterruptMask(PACSS_MMIO);
/* Check whether agc interrupt source is enabled. */
if (true != intrMask)
{
/* Enable AGC interrupt. */
}
/* Enable interrupt for interrupt controller. */
NVIC_EnableIRQ(AgcIntrConfig.intrSrc);
/* Set AGC interrupt. */

◆ Cy_DSADC_AgcSetInterruptMask()

__STATIC_INLINE void Cy_DSADC_AgcSetInterruptMask ( PACSS_MMIO_Type *  base)

Returns the masked (enabled) MMIO interrupt status.

Parameters
baseThe pointer to the MMIO instance of the PACSS.
Function Usage
/* Scenario: Set interrupt for agc. */
/* Hook interrupt service routine. */
(void) Cy_SysInt_Init(&AgcIntrConfig, &AGC_Isr);
bool intrMask;
intrMask = Cy_DSADC_AgcGetInterruptMask(PACSS_MMIO);
/* Check whether agc interrupt source is enabled. */
if (true != intrMask)
{
/* Enable AGC interrupt. */
}
/* Enable interrupt for interrupt controller. */
NVIC_EnableIRQ(AgcIntrConfig.intrSrc);
/* Set AGC interrupt. */

◆ Cy_DSADC_AgcGetInterruptStatusMasked()

__STATIC_INLINE bool Cy_DSADC_AgcGetInterruptStatusMasked ( PACSS_MMIO_Type *  base)

Returns the result of the bitwise AND operation between the corresponding interrupt request and mask bits.

Parameters
baseThe pointer to the MMIO instance of the PACSS.
Returns
The masked interrupt status. true : Masked interrupt occurs. false : No Masked interrupt occurs.
Function Usage
/* Interrupt handler. */
void AGC_Isr(void)
{
bool intr_status, masked_status;
intr_status = Cy_DSADC_AgcGetInterruptStatus(PACSS_MMIO);
masked_status = Cy_DSADC_AgcGetInterruptStatusMasked(PACSS_MMIO);
/* Check if interrupt occurs due to AGC. */
if(false != (intr_status && masked_status))
{
/* Process interrupt. */
}
else
{
/* Process unexpected behavior. */
}
/* Clear AGC interrupt. */
}