libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
PRS peripheral API

EFM32 Peripheral Reflex System (PRS). More...

Collaboration diagram for PRS peripheral API:

Functions

void prs_enable_gpio_output (enum prs_ch ch)
 Enable PRS output to GPIO. More...
 
void prs_disable_gpio_output (enum prs_ch ch)
 Disable PRS output to GPIO. More...
 
void prs_set_output_loc (uint32_t loc)
 Location of the PRS to be output on GPIO. More...
 
void prs_software_pulse (enum prs_ch ch)
 Generate software pulse. More...
 
void prs_software_level_high (enum prs_ch ch)
 HIGH is XOR'ed with the corresponding bit in the software-pulse and the PRS input signal to generate. More...
 
void prs_software_level_low (enum prs_ch ch)
 LOW is XOR'ed with the corresponding bit in the software-pulse and the PRS input signal to generate. More...
 
void prs_enable_async (enum prs_ch ch)
 disable synchronization of this channel reflex signal More...
 
void prs_disable_async (enum prs_ch ch)
 enable synchronization of this channel reflex signal More...
 
void prs_set_edge (enum prs_ch ch, uint32_t edge)
 Edge detection for the channel. More...
 
void prs_set_source (enum prs_ch ch, uint32_t source)
 Source for the channel. More...
 
void prs_set_signal (enum prs_ch ch, uint32_t signal)
 Source for the channel. More...
 

Detailed Description

EFM32 Peripheral Reflex System (PRS).

The Peripheral Reflex System (PRS) system is a network which allows the different peripheral modules to communicate directly with each other without involving the CPU.

Function Documentation

◆ prs_disable_async()

void prs_disable_async ( enum prs_ch  ch)

enable synchronization of this channel reflex signal

Parameters
[in]chChannel (use PRS_CHx)
See also
prs_disable_async()

Definition at line 112 of file prs_common.c.

References PRS_CHx_CTRL.

◆ prs_disable_gpio_output()

void prs_disable_gpio_output ( enum prs_ch  ch)

Disable PRS output to GPIO.

Parameters
[in]chChannel (use PRS_CHx)
See also
prs_set_output_loc()

Definition at line 46 of file prs_common.c.

References PRS_ROUTE.

◆ prs_enable_async()

void prs_enable_async ( enum prs_ch  ch)

disable synchronization of this channel reflex signal

Parameters
[in]chChannel (use PRS_CHx)
See also
prs_disable_async()

Definition at line 102 of file prs_common.c.

References PRS_CH_CTRL_ASYNC, and PRS_CHx_CTRL.

◆ prs_enable_gpio_output()

void prs_enable_gpio_output ( enum prs_ch  ch)

Enable PRS output to GPIO.

Parameters
[in]chChannel (use PRS_CHx)
See also
prs_set_output_loc()

Definition at line 36 of file prs_common.c.

References PRS_ROUTE, and PRS_ROUTE_CHxPEN.

◆ prs_set_edge()

void prs_set_edge ( enum prs_ch  ch,
uint32_t  edge 
)

Edge detection for the channel.

Parameters
[in]chChannel (use PRS_CHx)
[in]edgeEdge (use PRS_CH_CTRL_EDSEL_*)

Definition at line 122 of file prs_common.c.

References PRS_CHx_CTRL.

◆ prs_set_output_loc()

void prs_set_output_loc ( uint32_t  loc)

Location of the PRS to be output on GPIO.

Parameters
[in]loclocation (use PRS_ROUTE_LOCATION_LOCx)
See also
prs_set_output_loc()

Definition at line 56 of file prs_common.c.

References PRS_ROUTE.

◆ prs_set_signal()

void prs_set_signal ( enum prs_ch  ch,
uint32_t  signal 
)

Source for the channel.

Parameters
[in]chChannel (use PRS_CHx)
[in]signalSignal (use PRS_CH_CTRL_SIGSEL_*)
See also
prs_set_source()

Definition at line 145 of file prs_common.c.

References PRS_CHx_CTRL.

◆ prs_set_source()

void prs_set_source ( enum prs_ch  ch,
uint32_t  source 
)

Source for the channel.

Parameters
[in]chChannel (use PRS_CHx)
[in]sourceSource (use PRS_CH_CTRL_SOURCESEL_*)
See also
prs_set_signal()

Definition at line 133 of file prs_common.c.

References PRS_CHx_CTRL.

◆ prs_software_level_high()

void prs_software_level_high ( enum prs_ch  ch)

HIGH is XOR'ed with the corresponding bit in the software-pulse and the PRS input signal to generate.

Parameters
[in]chChannel (use PRS_CHx)
See also
prs_software_level_low()
prs_software_pulse()

Definition at line 80 of file prs_common.c.

References PRS_SWLEVEL, and PRS_SWLEVEL_CHxLEVEL.

◆ prs_software_level_low()

void prs_software_level_low ( enum prs_ch  ch)

LOW is XOR'ed with the corresponding bit in the software-pulse and the PRS input signal to generate.

Parameters
[in]chChannel (use PRS_CHx)
See also
prs_software_level_high()
prs_software_pulse()

Definition at line 92 of file prs_common.c.

References PRS_SWLEVEL.

◆ prs_software_pulse()

void prs_software_pulse ( enum prs_ch  ch)

Generate software pulse.

Parameters
[in]chChannel (use PRS_CHx)
Note
the final output is dependent on "software level" value of the channel
See also
prs_software_level_high()
prs_software_level_low()

Definition at line 68 of file prs_common.c.

References PRS_SWPULSE, and PRS_SWPULSE_CHxPULSE.