Microchip® Advanced Software Framework

wdt_megarf.h File Reference

AVR MEGARF WatchDog Timer driver Definition.

Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.

#include <compiler.h>

Macros

#define MASK_PRESCALE_WPD3   0x08
 Mask for timeout period setting above WDT_TIMEOUT_PERIOD_256KCLK. More...
 
#define PRESCALE_MASK   (WDP3_bm | WDP2_bm | WDP1_bm | WDP0_bm)
 Mask for timeout period setting register. More...
 
#define WDCE_bm   0x10 /* WDT change enable bit mask. */
 
#define WDCE_bp   4 /* WDT change enable bit position. */
 
#define WDE_bm   0x08 /* WDT enable bit mask. */
 
#define WDE_bp   3 /* WDT enable bit position. */
 
#define WDIE_bm   0x40 /* WDT timeout interrupt enable bit mask. */
 
#define WDIE_bp   6 /* WDT timeout interrupt enable bit position. */
 
#define WDIF_bm   0x80 /* WDT timeout interrupt flag bit mask. */
 
#define WDIF_bp   7 /* WDT timeout interrupt flag bit position. */
 
#define WDP0_bm   0x01 /* WDT prescaler 0 Bit mask. */
 
#define WDP0_bp   0 /* WDT prescaler 0 bit position. */
 
#define WDP1_bm   0x02 /* WDT prescaler 1 Bit mask. */
 
#define WDP1_bp   1 /* WDT prescaler 1 bit position. */
 
#define WDP2_bm   0x04 /* WDT prescaler 2 Bit mask. */
 
#define WDP2_bp   2 /* WDT prescaler 2 bit position. */
 
#define WDP3_bm   0x20 /* WDT prescaler 3 Bit mask. */
 
#define WDP3_bp   5 /* WDT prescaler 3 bit position. */
 
#define WDRF_bm   0x08 /* WDT Reset flag Bit mask. */
 
#define WDRF_bp   3 /* WDT Reset flag bit position. */
 
#define wdt_reset()   __asm__ __volatile__ ("wdr");
 This macro resets (clears/refreshes) the Watchdog Timer. More...
 

Typedefs

typedef void(* wdt_callback_t )(void)
 Interrupt event callback function type. More...
 

Enumerations

enum  wdt_mode_select {
  INTERRUPT_MODE,
  SYSTEM_RESET_MODE,
  INTERRUPT_SYSTEM_RESET_MODE
}
 
enum  wdt_timeout_period {
  WDT_TIMEOUT_PERIOD_2KCLK = (0x00),
  WDT_TIMEOUT_PERIOD_4KCLK = (0x01),
  WDT_TIMEOUT_PERIOD_8KCLK = (0x02),
  WDT_TIMEOUT_PERIOD_16KCLK = (0x03),
  WDT_TIMEOUT_PERIOD_32KCLK = (0x04),
  WDT_TIMEOUT_PERIOD_64KCLK = (0x05),
  WDT_TIMEOUT_PERIOD_128KCLK = (0x06),
  WDT_TIMEOUT_PERIOD_256KCLK = (0x07),
  WDT_TIMEOUT_PERIOD_512KCLK = (0x08),
  WDT_TIMEOUT_PERIOD_1024KCLK = (0x09)
}
 

Functions

void wdt_disable (void)
 Disable Watchdog. More...
 
void wdt_enable (enum wdt_mode_select mode)
 Enable WDT at different modes. More...
 
static enum wdt_timeout_period wdt_get_timeout_period (void)
 
More...
 
static bool wdt_interrupt_mode_enabled (void)
 checks whether the Watchdog is enabled for interrupt mode More...
 
static void wdt_reset_flag_clear (void)
 
More...
 
static bool wdt_reset_flag_is_set (void)
 
More...
 
static bool wdt_reset_interrupt_mode_enabled (void)
 checks whether the Watchdog is enabled for system reset and interrupt mode More...
 
void wdt_reset_mcu (void)
 
More...
 
void wdt_set_interrupt_callback (wdt_callback_t callback)
 Set WDT timer overflow interrupt callback function. More...
 
void wdt_set_timeout_period (enum wdt_timeout_period to_period)
 Set Watchdog timeout period. More...
 
static bool wdt_system_reset_mode_enabled (void)
 checks whether the Watchdog is enabled for system reset mode More...
 
static void wdt_timeout_interrupt_flag_clear (void)
 Clear Watchdog timeout interrupt flag. More...
 
static bool wdt_timeout_interrupt_flag_is_set (void)
 Gets the status of Watchdog timeout interrupt flag. More...