14#ifndef T32CZ20_WDOG_H_
15#define T32CZ20_WDOG_H_
37 #define CHIP_MEMORY_MAP_WDOG_BASE (0x50010000UL)
39 #define CHIP_MEMORY_MAP_WDOG_BASE (0x40010000UL)
49 __IO uint32_t initial_value;
52 __IO uint32_t current_value;
55 __IO uint32_t control;
58 __IO uint32_t reset_watchdog;
61 __IO uint32_t reset_counter;
64 __IO uint32_t interrupt_clear;
67 __IO uint32_t interrupt_on_value;
70 __IO uint32_t min_time_before_reset;
84#define TR_HAL_WDOG_MINIMUM_INITIAL_VALUE 32000000
91#define TR_HAL_WDOG_CTRL_LOCKOUT 0x01
95#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_ALSO_4096 0x1C
97#define TR_HAL_WDOG_CTRL_INTERRUPT_ENABLED 0x40
98#define TR_HAL_WDOG_CTRL_INTERRUPT_DISABLED 0x00
100#define TR_HAL_WDOG_CTRL_TIMER_ENABLED 0x80
101#define TR_HAL_WDOG_CTRL_TIMER_DISABLED 0x00
106#define TR_HAL_WDOG_RESET_WATCHDOG_VALUE 0xA5A5
110#define TR_HAL_WDOG_CLEAR_RESET_COUNTER 0x01
114#define TR_HAL_WDOG_CLEAR_INTERRUPT 0x01
118#define TR_HAL_WDOG_DEFAULT_MIN_TIME_BEFORE_RESET 0
122#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_1 0
123#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_16 15
124#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_32 31
125#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_128 127
126#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_256 255
127#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_1024 1023
128#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_4096 4095
130#define TR_HAL_WDOG_PRESCALAR_MAX_VALUE TR_HAL_WDOG_CTRL_CLK_PRESCALAR_4096
136#define WDOG_REGISTERS ((WDOG_REGISTERS_T *) CHIP_MEMORY_MAP_WDOG_BASE)
162#define TR_HAL_WDOG_1_SECOND_TIMER_VALUE 32000
166#define TR_HAL_WDOG_1_SECOND_PRESCALAR_VALUE TR_HAL_WDOG_CLK_PRESCALAR_1024
180#define TR_HAL_WDOG_EVENT_INT_TRIGGERED 0x00000001
196 bool watchdog_enabled;
200 uint32_t initial_value;
206 bool clear_reset_counter_on_init;
209 bool lockout_enabled;
212 uint32_t min_time_before_reset;
219 bool interrupt_enabled;
220 uint32_t interrupt_time_value;
230 uint32_t current_value;
244#define DEFAULT_WDOG_CONFIG \
246 .watchdog_enabled = false, \
247 .clock_prescalar = TR_HAL_WDOG_1_SECOND_PRESCALAR_VALUE, \
248 .initial_value = (6 * TR_HAL_WDOG_1_SECOND_TIMER_VALUE), \
249 .clear_reset_counter_on_init = false, \
250 .lockout_enabled = false, \
251 .min_time_before_reset = TR_HAL_WDOG_DEFAULT_MIN_TIME_BEFORE_RESET,\
252 .interrupt_enabled = false, \
253 .interrupt_time_value = 0, \
254 .interrupt_priority = TR_HAL_INTERRUPT_PRIORITY_5, \
255 .event_handler_fx = NULL, \
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_32
Definition T32CM11_wdog.h:89
tr_hal_wdog_prescalar_t
this enum is used for setting the clock prescalar in the settings struct
Definition T32CM11_wdog.h:136
void(* tr_hal_wdog_event_callback_t)(uint32_t event_bitmask)
Definition T32CM11_wdog.h:177
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_128
Definition T32CM11_wdog.h:90
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_4096
Definition T32CM11_wdog.h:92
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_1
Definition T32CM11_wdog.h:86
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_256
Definition T32CM11_wdog.h:88
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_16
Definition T32CM11_wdog.h:87
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_1024
Definition T32CM11_wdog.h:91
@ TR_HAL_WDOG_CLK_PRESCALAR_128
Definition T32CM11_wdog.h:141
@ TR_HAL_WDOG_CLK_PRESCALAR_4096
Definition T32CM11_wdog.h:143
@ TR_HAL_WDOG_CLK_PRESCALAR_32
Definition T32CM11_wdog.h:140
@ TR_HAL_WDOG_CLK_PRESCALAR_256
Definition T32CM11_wdog.h:139
@ TR_HAL_WDOG_CLK_PRESCALAR_1024
Definition T32CM11_wdog.h:142
@ TR_HAL_WDOG_CLK_PRESCALAR_16
Definition T32CM11_wdog.h:138
@ TR_HAL_WDOG_CLK_PRESCALAR_1
Definition T32CM11_wdog.h:137
WDOG_REGISTERS_T * tr_hal_wdog_get_register_address(void)
the struct we use so we can address registers using field names
Definition T32CM11_wdog.h:42
__IO uint32_t clock_prescale
Definition T32CZ20_wdog.h:73
Definition T32CM11_wdog.h:184