18#ifndef T32CZ20_TIMERS_H_
19#define T32CZ20_TIMERS_H_
31#define TR_HAL_NUM_TIMERS 5
70#ifdef TIMER0_SECURE_EN
71 #define CHIP_MEMORY_MAP_TIMER0_BASE (0x5000A000UL)
73 #define CHIP_MEMORY_MAP_TIMER0_BASE (0x4000A000UL)
76#ifdef TIMER1_SECURE_EN
77 #define CHIP_MEMORY_MAP_TIMER1_BASE (0x5000B000UL)
79 #define CHIP_MEMORY_MAP_TIMER1_BASE (0x4000B000UL)
82#ifdef TIMER2_SECURE_EN
83 #define CHIP_MEMORY_MAP_TIMER2_BASE (0x5000C000UL)
85 #define CHIP_MEMORY_MAP_TIMER2_BASE (0x4000C000UL)
88#ifdef TIMER32K0_SECURE_EN
89 #define CHIP_MEMORY_MAP_TIMER3_BASE (0x5000D000UL)
91 #define CHIP_MEMORY_MAP_TIMER3_BASE (0x4000D000UL)
94#ifdef TIMER32K1_SECURE_EN
95 #define CHIP_MEMORY_MAP_TIMER4_BASE (0x5000E000UL)
97 #define CHIP_MEMORY_MAP_TIMER4_BASE (0x4000E000UL)
171#define CR_COUNT_MODE_DOWN 0x00
172#define CR_COUNT_MODE_UP 0x01
174#define CR_ONE_SHOT_DISABLE 0x00
175#define CR_ONE_SHOT_ENABLE 0x10
177#define CR_PRESCALER_MASK 0x1C
179#define CR_INT_ENABLE_BIT 0x20
181#define CR_MODE_BIT 0x40
183#define CR_TIMER_RUNNING_BIT 0x80
185#define CR_INT_STATUS_BIT 0x100
193#define TIMER0_REGISTERS ((FAST_TIMER_REGISTERS_T *) CHIP_MEMORY_MAP_TIMER0_BASE)
194#define TIMER1_REGISTERS ((FAST_TIMER_REGISTERS_T *) CHIP_MEMORY_MAP_TIMER1_BASE)
195#define TIMER2_REGISTERS ((FAST_TIMER_REGISTERS_T *) CHIP_MEMORY_MAP_TIMER2_BASE)
196#define TIMER3_REGISTERS ((SLOW_TIMER_REGISTERS_T *) CHIP_MEMORY_MAP_TIMER3_BASE)
197#define TIMER4_REGISTERS ((SLOW_TIMER_REGISTERS_T *) CHIP_MEMORY_MAP_TIMER4_BASE)
227 uint32_t timer_start_value;
235 bool interrupt_enabled;
242 bool interrupt_is_active;
243 uint32_t timer_current_countdown_value;
254#define DEFAULT_32MHZ_TIMER_CONFIG \
256 .timer_start_value = (32000 * 10), \
257 .prescalar = TR_HAL_TIMER_PRESCALER_1024, \
258 .timer_repeats = true, \
259 .timer_enabled = false, \
260 .interrupt_enabled = true, \
261 .interrupt_priority = TR_HAL_INTERRUPT_PRIORITY_5, \
262 .event_handler_fx = NULL, \
265#define DEFAULT_32KHZ_TIMER_CONFIG \
267 .timer_start_value = (32000 * 10), \
268 .prescalar = TR_HAL_TIMER_PRESCALER_1, \
269 .timer_repeats = true, \
270 .timer_enabled = false, \
271 .interrupt_enabled = true, \
272 .interrupt_priority = TR_HAL_INTERRUPT_PRIORITY_5, \
273 .event_handler_fx = NULL, \
tr_hal_timer_id_t
Definition T32CM11_timers.h:35
tr_hal_timer_prescalar_t
Definition T32CM11_timers.h:47
tr_hal_timer_id_t
Definition T32CZ20_timers.h:35
tr_hal_timer_prescalar_t
Definition T32CZ20_timers.h:47
SLOW_TIMER_REGISTERS_T * tr_hal_slow_timer_get_register_address(tr_hal_timer_id_t timer_id)
FAST_TIMER_REGISTERS_T * tr_hal_fast_timer_get_register_address(tr_hal_timer_id_t timer_id)
void(* tr_hal_timer_callback_t)(tr_hal_timer_id_t expired_timer_id)
Definition T32CZ20_timers.h:211
@ TIMER_1_ID
Definition T32CZ20_timers.h:37
@ SLOW_CLOCK_TIMER_0_ID
Definition T32CZ20_timers.h:39
@ TIMER_2_ID
Definition T32CZ20_timers.h:38
@ TIMER_0_ID
Definition T32CZ20_timers.h:36
@ SLOW_CLOCK_TIMER_1_ID
Definition T32CZ20_timers.h:40
@ TR_HAL_TIMER_PRESCALER_256
Definition T32CZ20_timers.h:50
@ TR_HAL_TIMER_PRESCALER_2
Definition T32CZ20_timers.h:51
@ TR_HAL_TIMER_PRESCALER_128
Definition T32CZ20_timers.h:54
@ TR_HAL_TIMER_PRESCALER_1
Definition T32CZ20_timers.h:48
@ TR_HAL_TIMER_PRESCALER_8
Definition T32CZ20_timers.h:52
@ TR_HAL_TIMER_PRESCALER_1024
Definition T32CZ20_timers.h:55
@ TR_HAL_TIMER_PRESCALER_16
Definition T32CZ20_timers.h:49
@ TR_HAL_TIMER_PRESCALER_32
Definition T32CZ20_timers.h:53
@ TR_HAL_TIMER_PRESCALER_MAX
Definition T32CZ20_timers.h:56
Definition T32CZ20_timers.h:107
__IO uint32_t capture_clear
Definition T32CZ20_timers.h:121
__IO uint32_t capture_ch_0
Definition T32CZ20_timers.h:122
__IO uint32_t initial_value
Definition T32CZ20_timers.h:109
__IO uint32_t PWM_phase
Definition T32CZ20_timers.h:134
__IO uint32_t capture_ch_1
Definition T32CZ20_timers.h:123
__IO uint32_t capture_IO_select
Definition T32CZ20_timers.h:132
__IO uint32_t prescalar
Definition T32CZ20_timers.h:127
__IO uint32_t current_countdown_value
Definition T32CZ20_timers.h:112
__IO uint32_t PWM_threshhold
Definition T32CZ20_timers.h:133
__IO uint32_t control
Definition T32CZ20_timers.h:115
__IO uint32_t clear_interrupt
Definition T32CZ20_timers.h:118
__IO uint32_t expire_value
Definition T32CZ20_timers.h:130
__IO uint32_t capture_enable
Definition T32CZ20_timers.h:131
Definition T32CZ20_timers.h:144
__IO uint32_t prescalar
Definition T32CZ20_timers.h:161
__IO uint32_t expire_value
Definition T32CZ20_timers.h:163
__IO uint32_t initial_value
Definition T32CZ20_timers.h:146
__IO uint32_t current_countdown_value
Definition T32CZ20_timers.h:149
__IO uint32_t clear_interrupt
Definition T32CZ20_timers.h:155
__IO uint32_t interrupt_repeat
Definition T32CZ20_timers.h:157
__IO uint32_t control
Definition T32CZ20_timers.h:152
Definition T32CM11_timers.h:149