PRS - Peripheral Reflex System#
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.
Enumerations#
Logic functions that can be used when combining two PRS channels.
PRS Signal.
PRS Consumers.
Functions#
Convert an async PRS source to a sync source.
Convert an async PRS signal to a sync signal.
Set a source and signal for a channel.
Set the source and asynchronous signal for a channel.
Search for the first free PRS channel.
Reset all PRS channels.
Connect a PRS signal to a channel.
Connect a peripheral consumer to a PRS channel.
Send the output of a PRS channel to a GPIO pin.
Combine two PRS channels using a logic function.
Set level control bit for one or more channels.
Get level control bit for all channels.
Get the PRS channel values for all channels.
Get the PRS channel value for a single channel.
Trigger a high pulse (one HFPERCLK) for one or more channels.
Set the PRS channel level for one asynchronous PRS channel.
Trigger a pulse on one PRS channel.
Macros#
PRS Synchronous channel count.
PRS Asynchronous channel count.
PRS asynchronous support.
Enumeration Documentation#
PRS_ChType_t#
PRS_ChType_t
PRS Channel type.
Enumerator | |
---|---|
prsTypeAsync | Asynchronous channel type. |
prsTypeSync | Synchronous channel type. |
102
of file platform/emlib/inc/em_prs.h
PRS_Edge_TypeDef#
PRS_Edge_TypeDef
Edge detection type.
Enumerator | |
---|---|
prsEdgeOff | Leave signal as is. |
prsEdgePos | Generate pulses on positive edge. |
prsEdgeNeg | Generate pulses on negative edge. |
prsEdgeBoth | Generate pulses on both edges. |
108
of file platform/emlib/inc/em_prs.h
PRS_Logic_t#
PRS_Logic_t
Logic functions that can be used when combining two PRS channels.
Enumerator | |
---|---|
prsLogic_Zero | Logical 0. |
prsLogic_A_NOR_B | A NOR B. |
prsLogic_NOT_A_AND_B | (!A) NOR B. |
prsLogic_NOT_A | !A. |
prsLogic_A_AND_NOT_B | A AND (!B). |
prsLogic_NOT_B | !B. |
prsLogic_A_XOR_B | A XOR B. |
prsLogic_A_NAND_B | A NAND B. |
prsLogic_A_AND_B | A AND B. |
prsLogic_A_XNOR_B | A XNOR B. |
prsLogic_B | B. |
prsLogic_NOT_A_OR_B | (!A) OR B. |
prsLogic_A | A. |
prsLogic_A_OR_NOT_B | A OR (!B). |
prsLogic_A_OR_B | A OR B. |
prsLogic_One | Logical 1. |
117
of file platform/emlib/inc/em_prs.h
PRS_Signal_t#
PRS_Signal_t
PRS Signal.
Enumerator | |
---|---|
prsSignalNone | No Signal. |
prsSignalSW | Software-reserved Signal. |
prsSignalTIMER0_UF | TIMER0 underflow Signal. |
prsSignalTIMER0_OF | TIMER0 overflow Signal. |
prsSignalTIMER0_CC0 | TIMER0 capture/compare channel 0 Signal. |
prsSignalTIMER0_CC1 | TIMER0 capture/compare channel 1 Signal. |
prsSignalTIMER0_CC2 | TIMER0 capture/compare channel 2 Signal. |
prsSignalTIMER1_UF | TIMER1 underflow Signal. |
prsSignalTIMER1_OF | TIMER1 overflow Signal. |
prsSignalTIMER1_CC0 | TIMER1 capture/compare channel 0 Signal. |
prsSignalTIMER1_CC1 | TIMER1 capture/compare channel 1 Signal. |
prsSignalTIMER1_CC2 | TIMER1 capture/compare channel 2 Signal. |
prsSignalTIMER2_UF | TIMER2 underflow Signal. |
prsSignalTIMER2_OF | TIMER2 overflow Signal. |
prsSignalTIMER2_CC0 | TIMER2 capture/compare channel 0 Signal. |
prsSignalTIMER2_CC1 | TIMER2 capture/compare channel 1 Signal. |
prsSignalTIMER2_CC2 | TIMER2 capture/compare channel 2 Signal. |
prsSignalTIMER3_UF | TIMER3 underflow Signal. |
prsSignalTIMER3_OF | TIMER3 overflow Signal. |
prsSignalTIMER3_CC0 | TIMER3 capture/compare channel 0 Signal. |
prsSignalTIMER3_CC1 | TIMER3 capture/compare channel 1 Signal. |
prsSignalTIMER3_CC2 | TIMER3 capture/compare channel 2 Signal. |
prsSignalTIMER4_UF | TIMER4 underflow Signal. |
prsSignalTIMER4_OF | TIMER4 overflow Signal. |
prsSignalTIMER4_CC0 | TIMER4 capture/compare channel 0 Signal. |
prsSignalTIMER4_CC1 | TIMER4 capture/compare channel 1 Signal. |
prsSignalTIMER4_CC2 | TIMER4 capture/compare channel 2 Signal. |
prsSignalLETIMER0_CH0 | LETIMER0 channel 0 Signal. |
prsSignalLETIMER0_CH1 | LETIMER0 channel 1 Signal. |
prsSignalCORE_CTIOUT0 | CORE CTIOUT0 Signal. |
prsSignalCORE_CTIOUT1 | CORE CTIOUT1 Signal. |
prsSignalCORE_CTIOUT2 | CORE CTIOUT2 Signal. |
prsSignalCORE_CTIOUT3 | CORE CTIOUT3 Signal. |
prsSignalCMUL_CLKOUT0 | CMU CLKOUT0 Signal. |
prsSignalCMUL_CLKOUT1 | CMU CLKOUT1 Signal. |
prsSignalCMUL_CLKOUT2 | CMU CLKOUT2 Signal. |
prsSignalPRSL_ASYNCH0 | PRS channel 0 Signal. |
prsSignalPRSL_ASYNCH1 | PRS channel 1 Signal. |
prsSignalPRSL_ASYNCH2 | PRS channel 2 Signal. |
prsSignalPRSL_ASYNCH3 | PRS channel 3 Signal. |
prsSignalPRSL_ASYNCH4 | PRS channel 4 Signal. |
prsSignalPRSL_ASYNCH5 | PRS channel 5 Signal. |
prsSignalPRSL_ASYNCH6 | PRS channel 6 Signal. |
prsSignalPRSL_ASYNCH7 | PRS channel 7 Signal. |
prsSignalPRS_ASYNCH8 | PRS channel 8 Signal. |
prsSignalPRS_ASYNCH9 | PRS channel 9 Signal. |
prsSignalPRS_ASYNCH10 | PRS channel 10 Signal. |
prsSignalPRS_ASYNCH11 | PRS channel 11 Signal. |
prsSignalRTCC_CCV0 | RTCC capture/compare channel 0 Signal. |
prsSignalRTCC_CCV1 | RTCC capture/compare channel 1 Signal. |
prsSignalRTCC_CCV2 | RTCC capture/compare channel 2 Signal. |
prsSignalBURTC_COMP | BURTC compare Signal. |
prsSignalBURTC_OF | BURTC overflow Signal. |
prsSignalACMP0_OUT | ACMP0 Signal. |
prsSignalUSART0_TXC | USART0 TX complete Signal. |
prsSignalUSART0_RXDATA | USART0 RX data available Signal. |
prsSignalUSART0_IRTX | USART0 IR TX Signal. |
prsSignalUSART0_RTS | USART0 RTS Signal. |
prsSignalUSART0_TX | USART0 TX Signal. |
prsSignalUSART0_CS | USART0 chip select Signal. |
prsSignalUSART1_TXC | USART1 TX complete Signal. |
prsSignalUSART1_RXDATA | USART1 RX data available Signal. |
prsSignalUSART1_IRTX | USART1 IR TX Signal. |
prsSignalUSART1_RTS | USART1 RTS Signal. |
prsSignalUSART1_TX | USART1 TX Signal. |
prsSignalUSART1_CS | USART1 chip select Signal. |
prsSignalEUSART0_CS | EUSART0 chip select Signal. |
prsSignalEUSART0_IRTX | EUSART0 IR RX Signal. |
prsSignalEUSART0_RTS | EUSART0 RTS Signal. |
prsSignalEUSART0_RXDATA | EUSART0 RX data available Signal. |
prsSignalEUSART0_TX | EUSART0 TX Signal. |
prsSignalEUSART0_TXC | EUSART0 TX complete Signal. |
prsSignalEUSART0_RXFL | EUSART0 rxfl Signal. |
prsSignalEUSART0_TXFL | EUSART0 txfl Signal. |
prsSignalIADC0_SCANENTRY | IADC0 scan entry Signal. |
prsSignalIADC0_SCANTABLE | IADC0 scan table Signal. |
prsSignalIADC0_SINGLE | IADC0 single Signal. |
prsSignalGPIO_PIN0 | GPIO Pin 0 Signal. |
prsSignalGPIO_PIN1 | GPIO Pin 1 Signal. |
prsSignalGPIO_PIN2 | GPIO Pin 2 Signal. |
prsSignalGPIO_PIN3 | GPIO Pin 3 Signal. |
prsSignalGPIO_PIN4 | GPIO Pin 4 Signal. |
prsSignalGPIO_PIN5 | GPIO Pin 5 Signal. |
prsSignalGPIO_PIN6 | GPIO Pin 6 Signal. |
prsSignalGPIO_PIN7 | GPIO Pin 7 Signal. |
prsSignalAGCL_CCA | AGCL_CCA Signal. |
prsSignalAGCL_CCAREQ | AGCL_CCAREQ Signal. |
prsSignalAGCL_GAINADJUST | AGCL_GAINADJUST Signal. |
prsSignalAGCL_GAINOK | AGCL_GAINOK Signal. |
prsSignalAGCL_GAINREDUCED | AGCL_GAINREDUCED Signal. |
prsSignalAGCL_IFPKI1 | AGCL_IFPKI1 Signal. |
prsSignalAGCL_IFPKQ2 | AGCL_IFPKQ2 Signal. |
prsSignalAGCL_IFPKRST | AGCL_IFPKRST Signal. |
prsSignalAGC_PEAKDET | AGC_PEAKDET Signal. |
prsSignalAGC_PROPAGATED | AGC_PROPAGATED Signal. |
prsSignalAGC_RSSIDONE | AGC_RSSIDONE Signal. |
prsSignalBUFC_THR0 | BUFC_THR0 Signal. |
prsSignalBUFC_THR1 | BUFC_THR1 Signal. |
prsSignalBUFC_THR2 | BUFC_THR2 Signal. |
prsSignalBUFC_THR3 | BUFC_THR3 Signal. |
prsSignalBUFC_CNT0 | BUFC_CNT0 Signal. |
prsSignalBUFC_CNT1 | BUFC_CNT1 Signal. |
prsSignalBUFC_FULL | BUFC_FULL Signal. |
prsSignalMODEML_ADVANCE | MODEML_ADVANCE Signal. |
prsSignalMODEML_ANT0 | MODEML_ANT0 Signal. |
prsSignalMODEML_ANT1 | MODEML_ANT1 Signal. |
prsSignalMODEML_COHDSADET | MODEML_COHDSADET Signal. |
prsSignalMODEML_COHDSALIVE | MODEML_COHDSALIVE Signal. |
prsSignalMODEML_DCLK | MODEML_DCLK Signal. |
prsSignalMODEML_DOUT | MODEML_DOUT Signal. |
prsSignalMODEML_FRAMEDET | MODEML_FRAMEDET Signal. |
prsSignalMODEM_FRAMESENT | MODEM_FRAMESENT Signal. |
prsSignalMODEM_PREDET | MODEM_PREDET Signal. |
prsSignalMODEM_LRDSADET | MODEM_LRDSADET Signal. |
prsSignalMODEM_LRDSALIVE | MODEM_LRDSALIVE Signal. |
prsSignalMODEM_LOWCORR | MODEM_LOWCORR Signal. |
prsSignalMODEM_NEWSYMBOL | MODEM_NEWSYMBOL Signal. |
prsSignalMODEM_NEWWND | MODEM_NEWWND Signal. |
prsSignalMODEM_POSTPONE | MODEM_POSTPONE Signal. |
prsSignalMODEMH_PRESENT | MODEMH_PRESENT Signal. |
prsSignalMODEMH_RSSIJUMP | MODEMH_RSSIJUMP Signal. |
prsSignalMODEMH_SYNCSENT | MODEMH_SYNCSENT Signal. |
prsSignalMODEMH_TIMDET | MODEMH_TIMDET Signal. |
prsSignalMODEMH_WEAK | MODEMH_WEAK Signal. |
prsSignalMODEMH_EOF | MODEMH_EOF Signal. |
prsSignalFRC_DCLK | FRC_DCLK Signal. |
prsSignalFRC_DOUT | FRC_DOUT Signal. |
prsSignalPROTIMERL_BOF | PROTIMERL_BOF Signal. |
prsSignalPROTIMERL_CC0 | PROTIMERL_CC0 Signal. |
prsSignalPROTIMERL_CC1 | PROTIMERL_CC1 Signal. |
prsSignalPROTIMERL_CC2 | PROTIMERL_CC2 Signal. |
prsSignalPROTIMERL_CC3 | PROTIMERL_CC3 Signal. |
prsSignalPROTIMERL_CC4 | PROTIMERL_CC4 Signal. |
prsSignalPROTIMERL_LBTF | PROTIMERL_LBTF Signal. |
prsSignalPROTIMERL_LBTR | PROTIMERL_LBTR Signal. |
prsSignalPROTIMER_LBTS | PROTIMER_LBTS Signal. |
prsSignalPROTIMER_POF | PROTIMER_POF Signal. |
prsSignalPROTIMER_T0MATCH | PROTIMER_T0MATCH Signal. |
prsSignalPROTIMER_T0UF | PROTIMER_T0UF Signal. |
prsSignalPROTIMER_T1MATCH | PROTIMER_T1MATCH Signal. |
prsSignalPROTIMER_T1UF | PROTIMER_T1UF Signal. |
prsSignalPROTIMER_WOF | PROTIMER_WOF Signal. |
prsSignalRACL_ACTIVE | RACL_ACTIVE Signal. |
prsSignalRACL_LNAEN | RACL_LNAEN Signal. |
prsSignalRACL_PAEN | RACL_PAEN Signal. |
prsSignalRACL_RX | RACL_RX Signal. |
prsSignalRACL_TX | RACL_TX Signal. |
prsSignalRACL_CTIOUT0 | RACL_CTIOUT0 Signal. |
prsSignalRACL_CTIOUT1 | RACL_CTIOUT1 Signal. |
prsSignalRACL_CTIOUT2 | RACL_CTIOUT2 Signal. |
prsSignalRAC_CTIOUT3 | RAC_CTIOUT3 Signal. |
prsSignalSYNTH_MUX0 | SYNTH_MUX0 Signal. |
prsSignalSYNTH_MUX1 | SYNTH_MUX1 Signal. |
prsSignalPRORTC_CCV0 | PRORTC_CCV0 Signal. |
prsSignalPRORTC_CCV1 | PRORTC_CCV1 Signal. |
prsSignalETAMPDET_TAMPERSRCETAMPDET | ETAMPDET TAMPERSRCETAMPDET Signal. |
prsSignalDCDC_MONO70NSANA | |
prsSignalLFRCO_CALMEAS | DCDC Pulses for Coulomb Counter Calibration Signal. |
prsSignalLFRCO_SDM | LFRCO Calibration Measure Signal. |
prsSignalLFRCO_TCMEAS | LFRCO Sigma Delta Modulator output Signal. |
138
of file platform/emlib/inc/em_prs.h
PRS_Consumer_t#
PRS_Consumer_t
PRS Consumers.
Enumerator | |
---|---|
prsConsumerNone | No PRS consumer. |
prsConsumerCMU_CALDN | CMU calibration down consumer. |
prsConsumerCMU_CALUP | CMU calibration up consumer. |
prsConsumerIADC0_SCANTRIGGER | IADC0 scan trigger consumer. |
prsConsumerIADC0_SINGLETRIGGER | IADC0 single trigger consumer. |
prsConsumerLDMA_REQUEST0 | LDMA Request 0 consumer. |
prsConsumerLDMA_REQUEST1 | LDMA Request 1 consumer. |
prsConsumerLETIMER0_CLEAR | LETIMER0 clear consumer. |
prsConsumerLETIMER0_START | LETIMER0 start consumer. |
prsConsumerLETIMER0_STOP | LETIMER0 stop consumer. |
prsConsumerTIMER0_CC0 | TIMER0 capture/compare channel 0 consumer. |
prsConsumerTIMER0_CC1 | TIMER0 capture/compare channel 1 consumer. |
prsConsumerTIMER0_CC2 | TIMER0 capture/compare channel 2 consumer. |
prsConsumerTIMER1_CC0 | TIMER1 capture/compare channel 0 consumer. |
prsConsumerTIMER1_CC1 | TIMER1 capture/compare channel 1 consumer. |
prsConsumerTIMER1_CC2 | TIMER1 capture/compare channel 2 consumer. |
prsConsumerTIMER2_CC0 | TIMER2 capture/compare channel 0 consumer. |
prsConsumerTIMER2_CC1 | TIMER2 capture/compare channel 1 consumer. |
prsConsumerTIMER2_CC2 | TIMER2 capture/compare channel 2 consumer. |
prsConsumerTIMER3_CC0 | TIMER3 capture/compare channel 0 consumer. |
prsConsumerTIMER3_CC1 | TIMER3 capture/compare channel 1 consumer. |
prsConsumerTIMER3_CC2 | TIMER3 capture/compare channel 2 consumer. |
prsConsumerTIMER4_CC0 | TIMER4 capture/compare channel 0 consumer. |
prsConsumerTIMER4_CC1 | TIMER4 capture/compare channel 1 consumer. |
prsConsumerTIMER4_CC2 | TIMER4 capture/compare channel 2 consumer. |
prsConsumerUSART0_CLK | USART0 clock consumer. |
prsConsumerUSART0_IR | USART0 IR consumer. |
prsConsumerUSART0_RX | USART0 RX consumer. |
prsConsumerUSART0_TRIGGER | USART0 trigger consumer. |
prsConsumerUSART1_CLK | USART1 clock consumer. |
prsConsumerUSART1_IR | USART1 IR consumer. |
prsConsumerUSART1_RX | USART1 TX consumer. |
prsConsumerUSART1_TRIGGER | USART1 trigger consumer. |
prsConsumerEUSART0_CLK | EUSART0 clk consumer. |
prsConsumerEUSART0_RX | EUSART0 RX consumer. |
prsConsumerEUSART0_TRIGGER | EUSART0 trigger consumer. |
prsConsumerWDOG0_SRC0 | WDOG0 source 0 consumer. |
prsConsumerWDOG0_SRC1 | WDOG0 source 1 consumer. |
prsConsumerRTCC_CC0 | RTCC capture/compare channel 0 consumer. |
prsConsumerRTCC_CC1 | RTCC capture/compare channel 1 consumer. |
prsConsumerRTCC_CC2 | RTCC capture/compare channel 2 consumer. |
857
of file platform/emlib/inc/em_prs.h
Function Documentation#
PRS_ConvertToSyncSource#
uint32_t PRS_ConvertToSyncSource (uint32_t asyncSource)
Convert an async PRS source to a sync source.
[in] | asyncSource | The id of the asynchronous PRS source. |
This conversion must be done because the id's of the same peripheral source is different depending on if it's used as an asynchronous PRS source or a synchronous PRS source.
Returns
The id of the corresponding synchronous PRS source.
126
of file platform/emlib/src/em_prs.c
PRS_ConvertToSyncSignal#
uint32_t PRS_ConvertToSyncSignal (uint32_t asyncSource, uint32_t asyncSignal)
Convert an async PRS signal to a sync signal.
[in] | asyncSource | The id of the asynchronous PRS source. |
[in] | asyncSignal | The id of the asynchronous PRS signal. |
PRS values for some peripherals signals differ between asynchronous and synchronous PRS channels. This function must be used to handle the conversion.
Returns
The id of the corresponding synchronous PRS signal.
206
of file platform/emlib/src/em_prs.c
PRS_SourceSignalSet#
void PRS_SourceSignalSet (unsigned int ch, uint32_t source, uint32_t signal, PRS_Edge_TypeDef edge)
Set a source and signal for a channel.
[in] | ch | A channel to define the signal and source for. |
[in] | source | A source to select for the channel. Use one of PRS_CH_CTRL_SOURCESEL_x defines. |
[in] | signal | A signal (for selected |
[in] | edge | An edge (for selected source/signal) to generate the pulse for. |
323
of file platform/emlib/src/em_prs.c
PRS_SourceAsyncSignalSet#
void PRS_SourceAsyncSignalSet (unsigned int ch, uint32_t source, uint32_t signal)
Set the source and asynchronous signal for a channel.
[in] | ch | A channel to define the source and asynchronous signal for. |
[in] | source | A source to select for the channel. Use one of PRS_CH_CTRL_SOURCESEL_x defines. |
[in] | signal | An asynchronous signal (for selected |
Asynchronous reflexes are not clocked on HFPERCLK and can be used even in EM2/EM3. There is a limitation to reflexes operating in asynchronous mode in that they can only be used by a subset of the reflex consumers. See the PRS chapter in the reference manual for the complete list of supported asynchronous signals and consumers.
Note
This function is not supported on EFM32GxxxFyyy parts. In asynchronous mode, the edge detector only works in EM0 and should not be used. The EDSEL parameter in PRS_CHx_CTRL register is set to 0 (OFF) by default.
370
of file platform/emlib/src/em_prs.c
PRS_GetFreeChannel#
int PRS_GetFreeChannel (PRS_ChType_t type)
Search for the first free PRS channel.
[in] | type | PRS channel type. This can be either prsTypeAsync or prsTypeSync. |
Returns
Channel number >= 0 if an unused PRS channel was found. If no free PRS channel was found then -1 is returned.
428
of file platform/emlib/src/em_prs.c
PRS_Reset#
void PRS_Reset (void )
Reset all PRS channels.
N/A |
This function will reset all the PRS channel configuration.
457
of file platform/emlib/src/em_prs.c
PRS_ConnectSignal#
void PRS_ConnectSignal (unsigned int ch, PRS_ChType_t type, PRS_Signal_t signal)
Connect a PRS signal to a channel.
[in] | ch | PRS channel number. |
[in] | type | PRS channel type. This can be either prsTypeAsync or prsTypeSync. |
[in] | signal | This is the PRS signal that should be placed on the channel. |
This function will make the PRS signal available on the specific channel. Only a single PRS signal can be connected to any given channel.
495
of file platform/emlib/src/em_prs.c
PRS_ConnectConsumer#
void PRS_ConnectConsumer (unsigned int ch, PRS_ChType_t type, PRS_Consumer_t consumer)
Connect a peripheral consumer to a PRS channel.
[in] | ch | PRS channel number. |
[in] | type | PRS channel type. This can be either prsTypeAsync or prsTypeSync. |
[in] | consumer | This is the PRS consumer. |
Different peripherals can use PRS channels as their input. This function can be used to connect a peripheral consumer to a PRS channel. Multiple consumers can be connected to a single PRS channel.
554
of file platform/emlib/src/em_prs.c
PRS_PinOutput#
void PRS_PinOutput (unsigned int ch, PRS_ChType_t type, GPIO_Port_TypeDef port, uint8_t pin)
Send the output of a PRS channel to a GPIO pin.
[in] | ch | PRS channel number. |
[in] | type | PRS channel type. This can be either prsTypeAsync or prsTypeSync. |
[in] | port | GPIO port |
[in] | pin | GPIO pin |
This function is used to send the output of a PRS channel to a GPIO pin. Note that there are certain restrictions to where a PRS channel can be routed. Consult the datasheet of the device to see if a channel can be routed to the requested GPIO pin. Some devices for instance can only route the async channels 0-5 on GPIO pins PAx and PBx while async channels 6-11 can only be routed to GPIO pins PCx and PDx
595
of file platform/emlib/src/em_prs.c
PRS_Combine#
void PRS_Combine (unsigned int chA, unsigned int chB, PRS_Logic_t logic)
Combine two PRS channels using a logic function.
[in] | chA | PRS Channel for the A input. |
[in] | chB | PRS Channel for the B input. |
[in] | logic | The logic function to use when combining the Channel A and Channel B. The output of the logic function is the output of Channel A. Function like AND, OR, XOR, NOT and more are available. |
This function allows you to combine the output of one PRS channel with the the signal of another PRS channel using various logic functions. Note that for series 2, config 1 devices, the hardware only allows a PRS channel to be combined with the previous channel. So for instance channel 5 can be combined only with channel 4.
The logic function operates on two PRS channels called A and B. The output of PRS channel B is combined with the PRS source configured for channel A to produce an output. This output is used as the output of channel A.
640
of file platform/emlib/src/em_prs.c
PRS_LevelSet#
void PRS_LevelSet (uint32_t level, uint32_t mask)
Set level control bit for one or more channels.
[in] | level | Level to use for channels indicated by |
[in] | mask | Mask indicating which channels to set level for. Use logical OR combination of PRS_SWLEVEL_CHnLEVEL defines. |
The level value for a channel is XORed with both the pulse possibly issued by PRS_PulseTrigger() and the PRS input signal selected for the channel(s).
Note
Note that software level control is only available for asynchronous channels on Series 2 devices.
1016
of file platform/emlib/inc/em_prs.h
PRS_LevelGet#
uint32_t PRS_LevelGet (void )
Get level control bit for all channels.
N/A |
Returns
The current software level configuration.
1032
of file platform/emlib/inc/em_prs.h
PRS_Values#
uint32_t PRS_Values (PRS_ChType_t type)
Get the PRS channel values for all channels.
[in] | type | PRS channel type. This can be either prsTypeAsync or prsTypeSync. |
Returns
The current PRS channel output values for all channels as a bitset.
1053
of file platform/emlib/inc/em_prs.h
PRS_ChannelValue#
bool PRS_ChannelValue (unsigned int ch, PRS_ChType_t type)
Get the PRS channel value for a single channel.
[in] | ch | PRS channel number. |
[in] | type | PRS channel type. This can be either prsTypeAsync or prsTypeSync. |
Returns
The current PRS channel output value. This is either 0 or 1.
1081
of file platform/emlib/inc/em_prs.h
PRS_PulseTrigger#
void PRS_PulseTrigger (uint32_t channels)
Trigger a high pulse (one HFPERCLK) for one or more channels.
[in] | channels | Logical ORed combination of channels to trigger a pulse for. Use PRS_SWPULSE_CHnPULSE defines. |
Setting a bit for a channel causes the bit in the register to remain high for one HFPERCLK cycle. Pulse is XORed with both the corresponding bit in PRS SWLEVEL register and the PRS input signal selected for the channel(s).
1101
of file platform/emlib/inc/em_prs.h
PRS_ChannelLevelSet#
void PRS_ChannelLevelSet (unsigned int ch, bool level)
Set the PRS channel level for one asynchronous PRS channel.
[in] | ch | PRS channel number. |
[in] | level | true to set the level high (1) and false to set the level low (0). |
1120
of file platform/emlib/inc/em_prs.h
PRS_ChannelPulse#
void PRS_ChannelPulse (unsigned int ch)
Trigger a pulse on one PRS channel.
[in] | ch | PRS channel number. |
1132
of file platform/emlib/inc/em_prs.h
Macro Definition Documentation#
PRS_SYNC_CHAN_COUNT#
#define PRS_SYNC_CHAN_COUNTValue:
PRS_SYNC_CH_NUM
PRS Synchronous channel count.
57
of file platform/emlib/inc/em_prs.h
PRS_ASYNC_CHAN_COUNT#
#define PRS_ASYNC_CHAN_COUNTValue:
PRS_ASYNC_CH_NUM
PRS Asynchronous channel count.
59
of file platform/emlib/inc/em_prs.h
PRS_ASYNC_SUPPORTED#
#define PRS_ASYNC_SUPPORTEDValue:
1
PRS asynchronous support.
74
of file platform/emlib/inc/em_prs.h