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_RESET_ENABLED 0x20
98#define TR_HAL_WDOG_CTRL_RESET_DISABLED 0x00
100#define TR_HAL_WDOG_CTRL_INTERRUPT_ENABLED 0x40
101#define TR_HAL_WDOG_CTRL_INTERRUPT_DISABLED 0x00
103#define TR_HAL_WDOG_CTRL_TIMER_ENABLED 0x80
104#define TR_HAL_WDOG_CTRL_TIMER_DISABLED 0x00
109#define TR_HAL_WDOG_RESET_WATCHDOG_VALUE 0xA5A5
113#define TR_HAL_WDOG_CLEAR_RESET_COUNTER 0x01
117#define TR_HAL_WDOG_CLEAR_INTERRUPT 0x01
121#define TR_HAL_WDOG_DEFAULT_MIN_TIME_BEFORE_RESET 0
125#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_1 0
126#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_16 15
127#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_32 31
128#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_128 127
129#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_256 255
130#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_1024 1023
131#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_4096 4095
137#define WDOG_REGISTERS ((WDOG_REGISTERS_T *) CHIP_MEMORY_MAP_WDOG_BASE)
163#define TR_HAL_WDOG_1_SECOND_TIMER_VALUE 32000
167#define TR_HAL_WDOG_1_SECOND_PRESCALAR_VALUE TR_HAL_WDOG_CLK_PRESCALAR_1024
181#define TR_HAL_WDOG_EVENT_INT_TRIGGERED 0x00000001
197 bool watchdog_enabled;
204 uint32_t initial_value;
210 bool clear_reset_counter_on_init;
213 bool lockout_enabled;
216 uint32_t min_time_before_reset;
223 bool interrupt_enabled;
224 uint32_t interrupt_time_value;
245#define DEFAULT_WDOG_CONFIG \
247 .watchdog_enabled = true, \
248 .reset_enabled = true, \
249 .clock_prescalar = TR_HAL_WDOG_1_SECOND_PRESCALAR_VALUE, \
250 .initial_value = (6 * TR_HAL_WDOG_1_SECOND_TIMER_VALUE), \
251 .clear_reset_counter_on_init = false, \
252 .lockout_enabled = false, \
253 .min_time_before_reset = TR_HAL_WDOG_DEFAULT_MIN_TIME_BEFORE_RESET,\
254 .interrupt_enabled = false, \
255 .interrupt_time_value = 0, \
256 .interrupt_priority = TR_HAL_INTERRUPT_PRIORITY_5, \
257 .event_handler_fx = NULL, \
tr_hal_wdog_prescalar_t
this enum is used for setting the clock prescalar in the settings struct
Definition T32CM11_wdog.h:132
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_32
Definition T32CZ20_wdog.h:127
tr_hal_wdog_prescalar_t
this enum is used for setting the clock prescalar in the settings struct
Definition T32CZ20_wdog.h:145
void(* tr_hal_wdog_event_callback_t)(uint32_t event_bitmask)
Definition T32CZ20_wdog.h:186
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_128
Definition T32CZ20_wdog.h:128
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_4096
Definition T32CZ20_wdog.h:131
WDOG_REGISTERS_T * tr_hal_wdog_get_register_address(void)
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_1
Definition T32CZ20_wdog.h:125
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_256
Definition T32CZ20_wdog.h:129
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_16
Definition T32CZ20_wdog.h:126
#define TR_HAL_WDOG_CTRL_CLK_PRESCALAR_1024
Definition T32CZ20_wdog.h:130
@ TR_HAL_WDOG_CLK_PRESCALAR_128
Definition T32CZ20_wdog.h:150
@ TR_HAL_WDOG_CLK_PRESCALAR_4096
Definition T32CZ20_wdog.h:152
@ TR_HAL_WDOG_CLK_PRESCALAR_32
Definition T32CZ20_wdog.h:149
@ TR_HAL_WDOG_CLK_PRESCALAR_256
Definition T32CZ20_wdog.h:148
@ TR_HAL_WDOG_CLK_PRESCALAR_1024
Definition T32CZ20_wdog.h:151
@ TR_HAL_WDOG_CLK_PRESCALAR_16
Definition T32CZ20_wdog.h:147
@ TR_HAL_WDOG_CLK_PRESCALAR_1
Definition T32CZ20_wdog.h:146
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:180