20 #if (ISF_BM_USE_TPM == 0)
21 #define TPM_IRQ_VECTOR INT_TPM0
23 #define TPM_BASE_ADDR TPM0_BASE_PTR
24 #define TPM_CLK_SRC TPM_PDD_SYSTEM
25 #elif (ISF_BM_USE_TPM == 1)
26 #define TPM_IRQ_VECTOR INT_TPM1
28 #define TPM_BASE_ADDR TPM1_BASE_PTR
29 #define TPM_CLK_SRC TPM_PDD_SYSTEM
30 #elif (ISF_BM_USE_TPM == 2)
31 #define TPM_IRQ_VECTOR INT_TPM2
33 #define TPM_BASE_ADDR TPM2_BASE_PTR
34 #define TPM_CLK_SRC TPM_PDD_SYSTEM
36 #Error: Unknown TPM timer defined!!
40 #if (ISF_BM_TIMER_COUNTER_CLKSRC == 0)
41 #define TPM_COUNTER_CLK_SRC TPM_COUNTER_CLKSRC_DISABLE
42 #elif (ISF_BM_TIMER_COUNTER_CLKSRC == 1)
43 #define TPM_COUNTER_CLK_SRC TPM_COUNTER_CLKSRC_MCGFLLCLK_MCGPLLCLK2
44 #elif (ISF_BM_TIMER_COUNTER_CLKSRC == 2)
45 #define TPM_COUNTER_CLK_SRC TPM_COUNTER_CLKSRC_EXTREF
46 #elif (ISF_BM_TIMER_COUNTER_CLKSRC == 3)
47 #define TPM_COUNTER_CLK_SRC TPM_COUNTER_CLKSRC_INTREF
49 #Error: Invalid tpm counter clock source defined!
55 #define BM_TIMER_STOP() TPM_TIMER_STOP(TPM_BASE_ADDR)
57 #define BM_TIMER_START() TPM_TIMER_START(TPM_BASE_ADDR, TPM_CLK_SRC)
59 #define BM_TIMER_CLEAR_IRQ() TPM_TIMER_CLEAR_IRQ(TPM_BASE_ADDR)
61 #define BM_TIMER_SAVE_RUN_STATE() TPM_TIMER_SAVE_RUN_STATE(TPM_BASE_ADDR, TPM_INDEX)
63 #define BM_TIMER_RESTORE_RUN_STATE() TPM_TIMER_RESTORE_RUN_STATE(TPM_BASE_ADDR, TPM_INDEX)
66 #define BM_TIMER_SAVE_STOP() { BM_TIMER_SAVE_RUN_STATE() BM_TIMER_STOP() }
68 #define BM_TIMER_GET_MODULO() TPM_TIMER_GET_MODULO(TPM_BASE_ADDR)
69 #define BM_TIMER_SET_MODULO(x) TPM_TIMER_SET_MODULO(TPM_BASE_ADDR, x)
71 #define BM_TIMER_GET_COUNT() TPM_TIMER_GET_COUNT(TPM_BASE_ADDR)
73 #define BM_TIMER_COUNTER_RESET() TPM_TIMER_COUNTER_RESET(TPM_BASE_ADDR)
76 #define BM_TIMER_GET_TIME_REMAINING() TPM_TIMER_GET_TIME_REMAINING(TPM_BASE_ADDR)
78 #define BM_TIMER_SET_PRESCALER(x) TPM_TIMER_SET_PRESCALER(TPM_BASE_ADDR, x)
80 #define BM_TIMER_ENABLE_IRQ() TPM_TIMER_ENABLE_TOF_IRQ(TPM_BASE_ADDR)
82 #define BM_TIMER_INSTALL_ISR(isr, ptr) tpm_install_isr(isr, ptr, TPM_INDEX)
89 #ifdef BM_DEBUG_LATENCY_TEST
91 #define TIMER_TPM_GET_CNT() ((uint32)TPM0_CNT)
92 #define TIMER_TPM_CLEAR_OVF_FLAG() { TPM0_SC &= ~0x80; }
94 #define TIMER_TPM_START() { TPM0_CNT = (uint_16)0xffff; }
95 #define TIMER_TPM_STOP() { TPM0_SC &= ~0x18; }
98 #define TIMER_TPM_RESTORE_RUNSTATE() { TPM0_SC &= ~0x18; TPM0_SC |= (0x18 & tpm_TPM0_SC); }
101 #define TIMER_TPM_INIT() { TPM0_SC = 0x00; TPM0_MOD = 0xffff; TPM0_SC = (1 << 3) | 3; TPM0_CNT = (uint_16)0xffff; }
105 #define TIMER_TPM_GET_CNT() ((uint32)TPM0_CNT)
106 #define TIMER_TPM_CLEAR_OVF_FLAG() { TPM0_SC &= ~0x80; }
108 #define TIMER_TPM_START() { TPM0_CNT = (uint_16)0xffff; }
109 #define TIMER_TPM_STOP() { TPM0_SC &= ~0x18; }
112 #define TIMER_TPM_RESTORE_RUNSTATE() { TPM0_SC &= ~0x18; TPM0_SC |= (0x18 & tpm_TPM0_SC); }
115 #define TIMER_TPM_INIT() { TPM0_SC = 0x00; TPM0_MOD = 0xffff; TPM0_SC = (1 << 3) | 3; TPM0_CNT = (uint_16)0xffff; }
117 #endif // BM_INTERNAL_H
unsigned char uint8
This defines uint8 as unsigned char.
unsigned long uint32
This defines uint32 as unsigned long.
BM_VOLATILE uint8 gBm_timer_run_state
ISF bus management internal header file.
void bm_timer_init(boolean bEnableirq, uint32 usec)
Timer initialization .