3.31.16 Reset Controller (RSTC)
The Reset Controller (RSTC), based on power-on reset cells, handles all the resets of the system without any external components. It reports which reset occurred last.
-
Manages All Resets of the System, Including
-
Processor Reset
-
Backed up Peripheral Reset
-
-
Based on 2 Embedded Power on Reset Cells
-
Reset Source Status
-
Status of the Last Reset
-
Either General Reset, Wakeup Reset, Software Reset, User Reset, Watchdog Reset
-
Using The Library
The reset controller (RSTC) peripheral library provides API to find the cause of last device reset.
RSTC for LED Switcher:
void reset_asserted (uintptr_t context)
{
LED_Toggle();
}
int main ( void )
{
/* Initialize all modules */
SYS_Initialize ( NULL );
RSTC_CallbackRegister(reset_asserted, (uintptr_t) NULL );
while ( true )
{
/* Maintain state machines of all polled MPLAB Harmony modules. */
SYS_Tasks ( );
}
/* Execution should not come here during normal operation */
return ( EXIT_FAILURE );
}
Library Interface
Reset Controller peripheral library provides the following interfaces:
Functions
| Name | Description |
|---|---|
| RSTC_Initialize | Initializes RSTC module with the user configuration |
| RSTC_Reset | Resets the processor and all the embedded peripherals, if RSTC_RESET type is "RSTC_RESET_PROC ". Asserts the NRST pin, if RSTC_RESET type is "RSTC_RESET_EXT " |
| RSTC_NRSTPinRead | This API used to read the NRST pin level, sampled on each "Master Clock(MCK)" rising edge |
| RSTC_ResetCauseGet | Reports the cause of the last reset |
| RSTC_CallbackRegister | Allows a client to identify a callback function |
Data types and constants
| Name | Type | Description |
|---|---|---|
| RSTC_RESET_CAUSE | Struct | Identifiers for the cause of reset |
| RSTC_RESET_TYPE | Enum | Identifiers for the type of reset |
| RSTC_CALLBACK | Typedef | RSTC Callback Function Pointer |
