MTB CAT1 Peripheral driver library

General Description

This set of functions are related to ADCMic FIFO buffer.

Functions

uint8_t Cy_ADCMic_ReadFifoAll (MXS40ADCMIC_Type const *base, uint16_t *data)
 Reads whole the FIFO payload into the data array. More...
 
__STATIC_INLINE uint8_t Cy_ADCMic_GetFifoStatus (MXS40ADCMIC_Type const *base)
 Returns the fifo status. More...
 
__STATIC_INLINE uint32_t Cy_ADCMic_ReadFifo (MXS40ADCMIC_Type const *base)
 Low-level API which returns the ADCMIC_DATA register value that contains two subsequent FIFO data samples. More...
 

Function Documentation

◆ Cy_ADCMic_ReadFifoAll()

uint8_t Cy_ADCMic_ReadFifoAll ( MXS40ADCMIC_Type const *  base,
uint16_t *  data 
)

Reads whole the FIFO payload into the data array.

Parameters
baseThe pointer to the hardware ADCMic block.
dataThe pointer to the uint16_t data array for the FIFO payload.
Returns
The 8-bit FIFO data count.
Function Usage
/* ISR function to handle ADCMic interrupts.
* This same routine gets called when any of the enabled ADCMic interrupt sources are enabled.
*/
uint16_t data[64];
uint8_t dataCount;
void ADCMic_Isr(void)
{
/* Read interrupt status register. */
uint32_t intrStatus = Cy_ADCMic_GetInterruptStatusMasked(MXS40ADCMIC0);
/* Check what triggered the interrupt. */
if (0UL != (CY_ADCMIC_INTR_DATA & intrStatus))
{
if (0U != (CY_ADCMIC_FIFO_EMPTY & Cy_ADCMic_GetFifoStatus(MXS40ADCMIC0)))
{
dataCount = Cy_ADCMic_ReadFifoAll(MXS40ADCMIC0, data);
}
}
/* Check also the DC interrupt status, if enabled. */
/* Clear the handled interrupt. */
Cy_ADCMic_ClearInterrupt(MXS40ADCMIC0, intrStatus);
}

◆ Cy_ADCMic_GetFifoStatus()

__STATIC_INLINE uint8_t Cy_ADCMic_GetFifoStatus ( MXS40ADCMIC_Type const *  base)

Returns the fifo status.

Parameters
baseThe pointer to the hardware ADCMic block.
Returns
The 8-bit fifo status, see FIFO Status Masks.
Function Usage
/* ISR function to handle ADCMic interrupts.
* This same routine gets called when any of the enabled ADCMic interrupt sources are enabled.
*/
uint16_t data[64];
uint8_t dataCount;
void ADCMic_Isr(void)
{
/* Read interrupt status register. */
uint32_t intrStatus = Cy_ADCMic_GetInterruptStatusMasked(MXS40ADCMIC0);
/* Check what triggered the interrupt. */
if (0UL != (CY_ADCMIC_INTR_DATA & intrStatus))
{
if (0U != (CY_ADCMIC_FIFO_EMPTY & Cy_ADCMic_GetFifoStatus(MXS40ADCMIC0)))
{
dataCount = Cy_ADCMic_ReadFifoAll(MXS40ADCMIC0, data);
}
}
/* Check also the DC interrupt status, if enabled. */
/* Clear the handled interrupt. */
Cy_ADCMic_ClearInterrupt(MXS40ADCMIC0, intrStatus);
}

◆ Cy_ADCMic_ReadFifo()

__STATIC_INLINE uint32_t Cy_ADCMic_ReadFifo ( MXS40ADCMIC_Type const *  base)

Low-level API which returns the ADCMIC_DATA register value that contains two subsequent FIFO data samples.

Parameters
baseThe pointer to the hardware ADCMic block.
Returns
The combined 32-bit value of two 16-bit samples. Use FIFO Samples definitions to parse it.
Function Usage
uint16_t samples[2U];
uint32_t fifoData = Cy_ADCMic_ReadFifo(MXS40ADCMIC0);
samples[0U] = (uint16_t)_FLD2VAL(CY_ADCMIC_FIFO_FIRST_SAMPLE, fifoData);
samples[1U] = (uint16_t)_FLD2VAL(CY_ADCMIC_FIFO_SECOND_SAMPLE, fifoData);
/* now the samples array contains two subsequent data samples */