SAM Reset Controller (RSTC) Driver Example.
Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
#include <asf.h>
#include <string.h>
#include <stdio_serial.h>
#include <conf_clock.h>
#include <conf_board.h>
#include <rstc_example1.h>
Macros | |
#define | STRING_EOL "\r" |
#define | STRING_HEADER |
#define | WDT_PERIOD 3000 |
Functions | |
static void | configure_console (void) |
[reset_irq_variable] More... | |
static void | configure_watchdog (void) |
Configure the watchdog timer. More... | |
static void | display_menu (void) |
[reset_irq_handler] More... | |
static void | display_reset_reason (void) |
Display the reset reason(s). More... | |
int | main (void) |
SUPC RTC Wakeup Application entry point. More... | |
void | RSTC_Handler (void) |
RSTC interrupt handler. More... | |
void | SysTick_Handler (void) |
SysTick interrupt handler. More... | |
static void | wait_for_message_gone (void) |
Wait for UART to finish transmitting. More... | |
Variables | |
static volatile bool | reset_interrupt_triggered = false |
[reset_irq_variable] More... | |
static volatile uint32_t | tick_count = 0U |
static volatile bool | watchdog_enabled = true |
#define STRING_EOL "\r" |
#define STRING_HEADER |
Referenced by main().
#define WDT_PERIOD 3000 |
Watchdog period 3000ms.
Referenced by configure_watchdog().
|
static |
[reset_irq_variable]
Configure UART console.
References uart_rs232_options::baudrate, stdio_serial_init(), and sysclk_enable_peripheral_clock().
Referenced by main().
|
static |
Configure the watchdog timer.
References BOARD_FREQ_SLCK_XTAL, wdt_get_timeout_value(), wdt_init(), and WDT_PERIOD.
Referenced by main().
|
static |
|
static |
Display the reset reason(s).
[reset_get_status]
[reset_get_status]
References RSTC_BACKUP_RESET, RSTC_GENERAL_RESET, rstc_get_status(), RSTC_SOFTWARE_RESET, RSTC_USER_RESET, and RSTC_WATCHDOG_RESET.
Referenced by main().
int main | ( | void | ) |
SUPC RTC Wakeup Application entry point.
[reset_irq_has_triggered]
[reset_irq_has_triggered]
[reset_enable_user_reset]
[reset_enable_user_reset]
[reset_disable_user_reset]
[reset_disable_user_reset]
[reset_enable_user_reset_interrupt]
[reset_enable_user_reset_interrupt]
[reset_disable_user_reset_interrupt]
[reset_disable_user_reset_interrupt]
[reset_assert_nrst]
[reset_assert_nrst]
References board_init(), configure_console(), configure_watchdog(), cpu_irq_enter_critical(), cpu_irq_leave_critical(), display_menu(), display_reset_reason(), reset_interrupt_triggered, rstc_disable_user_reset(), rstc_disable_user_reset_interrupt(), rstc_enable_user_reset(), rstc_enable_user_reset_interrupt(), rstc_reset_extern(), rstc_set_external_reset(), rstc_start_software_reset(), STRING_HEADER, sysclk_get_cpu_hz(), sysclk_init(), uart_read(), usart_read(), wait_for_message_gone(), and watchdog_enabled.
void RSTC_Handler | ( | void | ) |
RSTC interrupt handler.
[reset_irq_handler]
void SysTick_Handler | ( | void | ) |
SysTick interrupt handler.
References tick_count, watchdog_enabled, and wdt_restart().
|
static |
|
static |
Referenced by SysTick_Handler().
Referenced by main(), and SysTick_Handler().