PRS - Peripheral Reflex System

Description

Peripheral Reflex System (PRS) Peripheral API.

This module contains functions to control the PRS peripheral of Silicon Labs 32-bit MCUs and SoCs. The PRS allows configurable, fast, and autonomous communication between peripherals on the MCU or SoC.

Functions

void PRS_SourceSignalSet (unsigned int ch, uint32_t source, uint32_t signal, PRS_Edge_TypeDef edge)
Set a source and signal for a channel.
void PRS_SourceAsyncSignalSet (unsigned int ch, uint32_t source, uint32_t signal)
Set the source and asynchronous signal for a channel.
void PRS_GpioOutputLocation (unsigned int ch, unsigned int location)
Send the output of a PRS channel to a GPIO pin.
int PRS_GetFreeChannel ( PRS_ChType_t type)
Search for the first free PRS channel.
void PRS_Reset (void)
Reset all PRS channels.
void PRS_ConnectSignal (unsigned int ch, PRS_ChType_t type, PRS_Signal_t signal)
Connect a PRS signal to a channel.
void PRS_LevelSet (uint32_t level, uint32_t mask)
Set level control bit for one or more channels.
uint32_t PRS_LevelGet (void)
Get level control bit for all channels.
void PRS_PulseTrigger (uint32_t channels)
Trigger a high pulse (one HFPERCLK) for one or more channels.
void PRS_ChannelLevelSet (unsigned int ch, bool level)
Set the PRS channel level for one asynchronous PRS channel.
void PRS_ChannelPulse (unsigned int ch)
Trigger a pulse on one PRS channel.

Macros

#define PRS_SYNC_CHAN_COUNT PRS_CHAN_COUNT
PRS Synchronous channel count.
#define PRS_ASYNC_CHAN_COUNT PRS_CHAN_COUNT
PRS Asynchronous channel count.
#define PRS_ASYNC_SUPPORTED 1
PRS asynchronous support.

Enumerations

enum PRS_ChType_t {
prsTypeAsync ,
prsTypeSync
}
PRS Channel type.
enum PRS_Edge_TypeDef {
prsEdgeOff ,
prsEdgePos ,
prsEdgeNeg ,
prsEdgeBoth
}
Edge detection type.
enum PRS_Signal_t {
prsSignalNone = PRS_CH_CTRL_SOURCESEL_NONE | (0x0 << _PRS_CH_CTRL_SIGSEL_SHIFT),
prsSignalSW = PRS_CH_CTRL_SOURCESEL_NONE | (0x1 << _PRS_CH_CTRL_SIGSEL_SHIFT),
prsSignalADC0_SINGLE = PRS_ADC0_SINGLE,
prsSignalADC0_SCAN = PRS_ADC0_SCAN,
prsSignalTIMER0_UF = PRS_TIMER0_UF,
prsSignalTIMER0_OF = PRS_TIMER0_OF,
prsSignalTIMER0_CC0 = PRS_TIMER0_CC0,
prsSignalTIMER0_CC1 = PRS_TIMER0_CC1,
prsSignalTIMER0_CC2 = PRS_TIMER0_CC2,
prsSignalTIMER1_UF = PRS_TIMER1_UF,
prsSignalTIMER1_OF = PRS_TIMER1_OF,
prsSignalTIMER1_CC0 = PRS_TIMER1_CC0,
<