18
18
#include "fsl_ctimer.h"
19
19
#include "PeripheralNames.h"
20
20
21
+ #if defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3U )
22
+ #define CTIMER CTIMER0
23
+ #define CTIMER_IRQn CTIMER0_IRQn
24
+ #else
25
+ #define CTIMER CTIMER1
26
+ #define CTIMER_IRQn CTIMER1_IRQn
27
+ #endif
28
+
21
29
const ticker_info_t * us_ticker_get_info ()
22
30
{
23
31
static const ticker_info_t info = {
@@ -47,13 +55,13 @@ void us_ticker_init(void) {
47
55
48
56
CTIMER_GetDefaultConfig (& config );
49
57
config .prescale = prescale - 1 ;
50
- CTIMER_Init (CTIMER1 , & config );
51
- CTIMER_Reset (CTIMER1 );
52
- CTIMER_StartTimer (CTIMER1 );
58
+ CTIMER_Init (CTIMER , & config );
59
+ CTIMER_Reset (CTIMER );
60
+ CTIMER_StartTimer (CTIMER );
53
61
}
54
- NVIC_SetVector (CTIMER1_IRQn , (uint32_t )us_ticker_irq_handler );
55
- NVIC_EnableIRQ (CTIMER1_IRQn );
56
- CTIMER1 -> MCR &= ~1 ;
62
+ NVIC_SetVector (CTIMER_IRQn , (uint32_t )us_ticker_irq_handler );
63
+ NVIC_EnableIRQ (CTIMER_IRQn );
64
+ CTIMER -> MCR &= ~1 ;
57
65
58
66
us_ticker_inited = true;
59
67
}
@@ -63,7 +71,7 @@ void us_ticker_init(void) {
63
71
* @return The current timer's counter value in ticks
64
72
*/
65
73
uint32_t us_ticker_read (void ) {
66
- return CTIMER1 -> TC ;
74
+ return CTIMER -> TC ;
67
75
}
68
76
69
77
/** Set interrupt for specified timestamp
@@ -80,32 +88,32 @@ void us_ticker_set_interrupt(timestamp_t timestamp) {
80
88
matchConfig .outPinInitState = true;
81
89
matchConfig .enableInterrupt = true;
82
90
83
- CTIMER_SetupMatch (CTIMER1 , kCTIMER_Match_0 , & matchConfig );
91
+ CTIMER_SetupMatch (CTIMER , kCTIMER_Match_0 , & matchConfig );
84
92
}
85
93
86
94
/** Disable us ticker interrupt
87
95
*
88
96
*/
89
97
void us_ticker_disable_interrupt (void ) {
90
- CTIMER1 -> MCR &= ~1 ;
98
+ CTIMER -> MCR &= ~1 ;
91
99
}
92
100
93
101
/** Clear us ticker interrupt
94
102
*
95
103
*/
96
104
void us_ticker_clear_interrupt (void ) {
97
- CTIMER1 -> IR = 1 ;
105
+ CTIMER -> IR = 1 ;
98
106
}
99
107
100
108
void us_ticker_fire_interrupt (void )
101
109
{
102
- NVIC_SetPendingIRQ (CTIMER1_IRQn );
110
+ NVIC_SetPendingIRQ (CTIMER_IRQn );
103
111
}
104
112
105
113
void us_ticker_free (void )
106
114
{
107
- CTIMER_StopTimer (CTIMER1 );
108
- CTIMER1 -> MCR &= ~1 ;
109
- NVIC_DisableIRQ (CTIMER1_IRQn );
115
+ CTIMER_StopTimer (CTIMER );
116
+ CTIMER -> MCR &= ~1 ;
117
+ NVIC_DisableIRQ (CTIMER_IRQn );
110
118
us_ticker_inited = false;
111
119
}
0 commit comments