SYSRTC - System Real Time Counter#
System Real Time Counter (SYSRTC) Peripheral API.
This module contains functions to control the SYSRTC peripheral of Silicon Labs 32-bit MCUs and SoCs. The SYSRTC ensures timekeeping in low energy modes.
Modules#
sl_hal_sysrtc_group_channel_compare_config_t
sl_hal_sysrtc_group_channel_capture_config_t
Enumerations#
Capture input edge select.
Compare match output action mode.
Functions#
Initializes SYSRTC module.
Enables SYSRTC counting.
Disables SYSRTC counting.
Waits for the SYSRTC to complete all synchronization of register changes and commands.
Waits for the SYSRTC to complete reseting or disabling procedure.
Starts SYSRTC counter.
Stops the SYSRTC counter.
Restores SYSRTC to its reset state.
Gets SYSRTC STATUS register value.
Locks SYSRTC registers.
Unlocks SYSRTC registers.
Sets the SYSRTC counter value.
Initializes the selected SYSRTC group.
Gets enabled and pending SYSRTC interrupt flags.
Sets one or more pending SYSRTC interrupts for the given group from Software.
Enables one or more SYSRTC interrupts for the given group.
Disables one or more SYSRTC interrupts for the given group.
Clears one or more pending SYSRTC interrupts for the given group.
Gets pending SYSRTC interrupt flags for the given group.
Gets SYSRTC compare register value for selected channel of given group.
Sets SYSRTC compare register value for selected channel of given group.
Gets SYSRTC input capture register value for selected channel of given group.
Macros#
Minimum compare channels for SYSRTC group.
Maximum compare channels for SYSRTC group.
Minimum capture channels for SYSRTC group.
Maximum capture channels for SYSRTC group.
Sysrtc group number.
Validation of valid SYSRTC group for assert statements.
Suggested default values for SYSRTC configuration structure.
Suggested default values for compare channel configuration structure.
Compare channel configuration for starting HFXO using PRS.
Suggested default values for capture channel configuration structure.
Suggested default values for SYSRTC group configuration structure.
Enumeration Documentation#
sl_hal_sysrtc_capture_edge_t#
sl_hal_sysrtc_capture_edge_t
Capture input edge select.
Enumerator | |
---|---|
SL_HAL_SYSRTC_CAPTURE_EDGE_RISING | Rising edges detected. |
SL_HAL_SYSRTC_CAPTURE_EDGE_FALLING | Falling edges detected. |
SL_HAL_SYSRTC_CAPTURE_EDGE_BOTH | Both edges detected. |
80
of file platform/peripheral/inc/sl_hal_sysrtc.h
sl_hal_sysrtc_compare_match_out_action_t#
sl_hal_sysrtc_compare_match_out_action_t
Compare match output action mode.
Enumerator | |
---|---|
SL_HAL_SYSRTC_COMPARE_MATCH_OUT_ACTION_CLEAR | Clear output. |
SL_HAL_SYSRTC_COMPARE_MATCH_OUT_ACTION_SET | Set output. |
SL_HAL_SYSRTC_COMPARE_MATCH_OUT_ACTION_PULSE | Generate a pulse. |
SL_HAL_SYSRTC_COMPARE_MATCH_OUT_ACTION_TOGGLE | Toggle output. |
SL_HAL_SYSRTC_COMPARE_MATCH_OUT_ACTION_CMPIF | Export CMPIF. |
87
of file platform/peripheral/inc/sl_hal_sysrtc.h
Variable Documentation#
Function Documentation#
sl_hal_sysrtc_init#
void sl_hal_sysrtc_init (const sl_hal_sysrtc_config_t * p_config)
Initializes SYSRTC module.
[in] | p_config | A pointer to the SYSRTC initialization structure variable. |
Note that the compare values must be set separately with (sl_hal_sysrtc_set_group_compare_channel_value()), which should probably be done prior to the use of this function if configuring the SYSRTC to start when initialization is completed.
62
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_enable#
void sl_hal_sysrtc_enable (void )
Enables SYSRTC counting.
N/A |
81
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_disable#
void sl_hal_sysrtc_disable (void )
Disables SYSRTC counting.
N/A |
96
of file platform/peripheral/src/sl_hal_sysrtc.c
SL_CODE_CLASSIFY#
SL_CODE_CLASSIFY (SL_CODE_COMPONENT_PERIPHERAL_SYSRTC , SL_CODE_CLASS_TIME_CRITICAL , group_number, flags, group_number, flags)
Waits for the SYSRTC to complete all synchronization of register changes and commands.
[in] | SYSRTC group number to use. | |
[in] | Channel selector. | |
[in] | group_number | Compare register value. |
[in] | flags | SYSRTC group number to use. |
[in] | group_number | SYSRTC group number to use. |
[in] | flags | SYSRTC interrupt sources to clear. Use a set of interrupt flags OR-ed together to clear multiple interrupt sources for the given SYSRTC group. |
Gets SYSRTC input capture register value for capture channel of given group.
Sets SYSRTC compare register value for selected channel of given group.
Gets SYSRTC compare register value for selected channel of given group.
Gets pending SYSRTC interrupt flags for the given group.
Clears one or more pending SYSRTC interrupts for the given group.
Disables one or more SYSRTC interrupts for the given group.
Enables one or more SYSRTC interrupts for the given group.
Gets SYSRTC counter value.
Returns
Current SYSRTC counter value.
Note
Depending on the use, a pending interrupt may already be set prior to enabling the interrupt. To ignore a pending interrupt, consider using sl_hal_sysrtc_clear_group_interrupts() prior to enabling the interrupt.
Note
Event bits are not cleared by using this function.
Returns
Pending SYSRTC interrupt sources. Returns a set of interrupt flags OR-ed together for multiple interrupt sources in the SYSRTC group.
Returns
Compare register value.
Returns
Capture register value.
190
of file platform/peripheral/inc/sl_hal_sysrtc.h
sl_hal_sysrtc_wait_ready#
void sl_hal_sysrtc_wait_ready (void )
Waits for the SYSRTC to complete reseting or disabling procedure.
N/A |
202
of file platform/peripheral/inc/sl_hal_sysrtc.h
sl_hal_sysrtc_start#
void sl_hal_sysrtc_start (void )
Starts SYSRTC counter.
N/A |
This function will send a start command to the SYSRTC peripheral. The SYSRTC peripheral will use some LF clock ticks before the command is executed. The sl_hal_sysrtc_wait_sync() function can be used to wait for the start command to be executed.
Note
This function requires the SYSRTC to be enabled.
219
of file platform/peripheral/inc/sl_hal_sysrtc.h
sl_hal_sysrtc_stop#
void sl_hal_sysrtc_stop (void )
Stops the SYSRTC counter.
N/A |
This function will send a stop command to the SYSRTC peripheral. The SYSRTC peripheral will use some LF clock ticks before the command is executed. The sl_hal_sysrtc_wait_sync() function can be used to wait for the stop command to be executed.
Note
This function requires the SYSRTC to be enabled.
235
of file platform/peripheral/inc/sl_hal_sysrtc.h
sl_hal_sysrtc_reset#
void sl_hal_sysrtc_reset (void )
Restores SYSRTC to its reset state.
N/A |
112
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_get_status#
uint32_t sl_hal_sysrtc_get_status (void )
Gets SYSRTC STATUS register value.
N/A |
Returns
Current STATUS register value.
251
of file platform/peripheral/inc/sl_hal_sysrtc.h
sl_hal_sysrtc_lock#
void sl_hal_sysrtc_lock (void )
Locks SYSRTC registers.
N/A |
Note
When SYSRTC registers are locked SYSRTC_EN, SYSRTC_CFG, SYSRTC_CMD, SYSRTC_SWRST, SYSRTC_CNT and SYSRTC_TOPCNT registers cannot be written to.
263
of file platform/peripheral/inc/sl_hal_sysrtc.h
sl_hal_sysrtc_unlock#
void sl_hal_sysrtc_unlock (void )
Unlocks SYSRTC registers.
N/A |
Note
When SYSRTC registers are locked SYSRTC_EN, SYSRTC_CFG, SYSRTC_CMD, SYSRTC_SWRST, SYSRTC_CNT and SYSRTC_TOPCNT registers cannot be written to.
275
of file platform/peripheral/inc/sl_hal_sysrtc.h
sl_hal_sysrtc_set_counter#
void sl_hal_sysrtc_set_counter (uint32_t value)
Sets the SYSRTC counter value.
[in] | value | The new SYSRTC counter value. |
300
of file platform/peripheral/inc/sl_hal_sysrtc.h
sl_hal_sysrtc_init_group#
void sl_hal_sysrtc_init_group (uint8_t group_number, sl_hal_sysrtc_group_config_t const * p_group_config)
Initializes the selected SYSRTC group.
[in] | group_number | SYSRTC group number to use. |
[in] | p_group_config | Pointer to group configuration structure variable. |
121
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_get_group_enabled_interrupts#
uint32_t sl_hal_sysrtc_get_group_enabled_interrupts (uint8_t group_number)
Gets enabled and pending SYSRTC interrupt flags.
[in] | group_number | SYSRTC group number to use. |
Useful for handling more interrupt sources in the same interrupt handler.
Note
Interrupt flags are not cleared by using this function.
Returns
Pending and enabled SYSRTC interrupt sources. The return value is the bitwise AND of
the enabled interrupt sources in SYSRTC_GRPx_IEN and
the pending interrupt flags SYSRTC_GRPx_IF.
502
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_set_group_interrupts#
void sl_hal_sysrtc_set_group_interrupts (uint8_t group_number, uint32_t flags)
Sets one or more pending SYSRTC interrupts for the given group from Software.
[in] | group_number | SYSRTC group number to use. |
[in] | flags | SYSRTC interrupt sources to set to pending. Use a set of interrupt flags OR-ed together to set multiple interrupt sources for the SYSRTC group. |
564
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_wait_sync#
void sl_hal_sysrtc_wait_sync (void )
N/A |
49
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_get_counter#
uint32_t sl_hal_sysrtc_get_counter (void )
N/A |
56
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_enable_group_interrupts#
void sl_hal_sysrtc_enable_group_interrupts (uint8_t group_number, uint32_t flags)
Enables one or more SYSRTC interrupts for the given group.
N/A | group_number | |
N/A | flags |
270
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_disable_group_interrupts#
void sl_hal_sysrtc_disable_group_interrupts (uint8_t group_number, uint32_t flags)
Disables one or more SYSRTC interrupts for the given group.
N/A | group_number | |
N/A | flags |
330
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_clear_group_interrupts#
void sl_hal_sysrtc_clear_group_interrupts (uint8_t group_number, uint32_t flags)
Clears one or more pending SYSRTC interrupts for the given group.
N/A | group_number | |
N/A | flags |
390
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_get_group_interrupts#
uint32_t sl_hal_sysrtc_get_group_interrupts (uint8_t group_number)
Gets pending SYSRTC interrupt flags for the given group.
N/A | group_number |
450
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_get_group_compare_channel_value#
uint32_t sl_hal_sysrtc_get_group_compare_channel_value (uint8_t group_number, uint8_t channel)
Gets SYSRTC compare register value for selected channel of given group.
N/A | group_number | |
N/A | channel |
624
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_set_group_compare_channel_value#
void sl_hal_sysrtc_set_group_compare_channel_value (uint8_t group_number, uint8_t channel, uint32_t value)
Sets SYSRTC compare register value for selected channel of given group.
N/A | group_number | |
N/A | channel | |
N/A | value |
781
of file platform/peripheral/src/sl_hal_sysrtc.c
sl_hal_sysrtc_get_group_capture_channel_value#
uint32_t sl_hal_sysrtc_get_group_capture_channel_value (uint8_t group_number)
Gets SYSRTC input capture register value for selected channel of given group.
N/A | group_number |
946
of file platform/peripheral/src/sl_hal_sysrtc.c
Macro Definition Documentation#
SYSRTC_GROUP_MIN_CHANNEL_COMPARE#
#define SYSRTC_GROUP_MIN_CHANNEL_COMPAREValue:
1u
Minimum compare channels for SYSRTC group.
58
of file platform/peripheral/inc/sl_hal_sysrtc.h
SYSRTC_GROUP_MAX_CHANNEL_COMPARE#
#define SYSRTC_GROUP_MAX_CHANNEL_COMPAREValue:
2u
Maximum compare channels for SYSRTC group.
60
of file platform/peripheral/inc/sl_hal_sysrtc.h
SYSRTC_GROUP_MIN_CHANNEL_CAPTURE#
#define SYSRTC_GROUP_MIN_CHANNEL_CAPTUREValue:
0u
Minimum capture channels for SYSRTC group.
63
of file platform/peripheral/inc/sl_hal_sysrtc.h
SYSRTC_GROUP_MAX_CHANNEL_CAPTURE#
#define SYSRTC_GROUP_MAX_CHANNEL_CAPTUREValue:
1u
Maximum capture channels for SYSRTC group.
65
of file platform/peripheral/inc/sl_hal_sysrtc.h
SYSRTC_GROUP_NUMBER#
#define SYSRTC_GROUP_NUMBERValue:
1u
Sysrtc group number.
69
of file platform/peripheral/inc/sl_hal_sysrtc.h
SYSRTC_GROUP_VALID#
#define SYSRTC_GROUP_VALIDValue:
(group)
Validation of valid SYSRTC group for assert statements.
73
of file platform/peripheral/inc/sl_hal_sysrtc.h
SYSRTC_CONFIG_DEFAULT#
#define SYSRTC_CONFIG_DEFAULTValue:
Suggested default values for SYSRTC configuration structure.
105
of file platform/peripheral/inc/sl_hal_sysrtc.h
SYSRTC_GROUP_CHANNEL_COMPARE_CONFIG_DEFAULT#
#define SYSRTC_GROUP_CHANNEL_COMPARE_CONFIG_DEFAULTValue:
Suggested default values for compare channel configuration structure.
131
of file platform/peripheral/inc/sl_hal_sysrtc.h
SYSRTC_GROUP_CHANNEL_COMPARE_CONFIG_EARLY_WAKEUP#
#define SYSRTC_GROUP_CHANNEL_COMPARE_CONFIG_EARLY_WAKEUPValue:
Compare channel configuration for starting HFXO using PRS.
137
of file platform/peripheral/inc/sl_hal_sysrtc.h
SYSRTC_GROUP_CHANNEL_CAPTURE_CONFIG_DEFAULT#
#define SYSRTC_GROUP_CHANNEL_CAPTURE_CONFIG_DEFAULTValue:
Suggested default values for capture channel configuration structure.
143
of file platform/peripheral/inc/sl_hal_sysrtc.h
SYSRTC_GROUP_CONFIG_DEFAULT#
#define SYSRTC_GROUP_CONFIG_DEFAULTValue:
Suggested default values for SYSRTC group configuration structure.
149
of file platform/peripheral/inc/sl_hal_sysrtc.h