Skip to content

Commit a04102a

Browse files
paul-szczepanek-armpan-
authored andcommitted
switch to timer 2 due to conflict
1 parent 7f23b6d commit a04102a

File tree

1 file changed

+28
-28
lines changed
  • features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x/stack/sources

1 file changed

+28
-28
lines changed

features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x/stack/sources/pal_timer.c

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,10 @@ static uint32_t palTimerGetCurrentTime(void)
162162
/* Read and return the captured count value from capture register 1 */
163163
return PalRtcCounterGet();
164164
#else
165-
/* Capture current TIMER1 count to capture register 1 */
166-
NRF_TIMER1->TASKS_CAPTURE[TIMER_CHANNEL_READ_TICK] = 1;
165+
/* Capture current TIMER2 count to capture register 1 */
166+
NRF_TIMER2->TASKS_CAPTURE[TIMER_CHANNEL_READ_TICK] = 1;
167167
/* Read and return the captured count value from capture register 1 */
168-
return NRF_TIMER1->CC[TIMER_CHANNEL_READ_TICK];
168+
return NRF_TIMER2->CC[TIMER_CHANNEL_READ_TICK];
169169
#endif
170170
}
171171
return 0;
@@ -192,28 +192,28 @@ void PalTimerInit(PalTimerCompCback_t expCback)
192192
PalRtcIrqRegister(RTC_CHANNEL_START_BB, palTimerRtcIrqHandler);
193193
#else
194194
/* Give scheduler timer the highest priority. */
195-
NVIC_SetPriority(TIMER1_IRQn, 0); /* highest priority */
196-
NVIC_DisableIRQ(TIMER1_IRQn);
195+
NVIC_SetPriority(TIMER2_IRQn, 0); /* highest priority */
196+
NVIC_DisableIRQ(TIMER2_IRQn);
197197

198198
/* stop timer if it was somehow running (timer must be stopped for configuration) */
199-
NRF_TIMER1->TASKS_STOP = 1;
199+
NRF_TIMER2->TASKS_STOP = 1;
200200

201201
/* clear timer to zero count */
202-
NRF_TIMER1->TASKS_CLEAR = 1;
202+
NRF_TIMER2->TASKS_CLEAR = 1;
203203

204204
/* configure timer */
205-
NRF_TIMER1->MODE = TIMER_MODE_MODE_Timer;
206-
NRF_TIMER1->BITMODE = TIMER_BITMODE_BITMODE_32Bit;
207-
NRF_TIMER1->PRESCALER = PAL_TIMER_1MHZ_PRESCALER; /* f = 16MHz / (2 ^ TIMER_PRESCALER) */
205+
NRF_TIMER2->MODE = TIMER_MODE_MODE_Timer;
206+
NRF_TIMER2->BITMODE = TIMER_BITMODE_BITMODE_32Bit;
207+
NRF_TIMER2->PRESCALER = PAL_TIMER_1MHZ_PRESCALER; /* f = 16MHz / (2 ^ TIMER_PRESCALER) */
208208

209209
/* timer1 is a free running clock. */
210-
NRF_TIMER1->TASKS_START = 1;
210+
NRF_TIMER2->TASKS_START = 1;
211211

212212
/* Clear out and enable timer1 interrupt at system level. */
213-
NRF_TIMER1->INTENCLR = 0xFFFFFFFF;
214-
NRF_TIMER1->EVENTS_COMPARE[TIMER_CHANNEL_START_BB] = 0;
215-
NVIC_ClearPendingIRQ(TIMER1_IRQn);
216-
NVIC_EnableIRQ(TIMER1_IRQn);
213+
NRF_TIMER2->INTENCLR = 0xFFFFFFFF;
214+
NRF_TIMER2->EVENTS_COMPARE[TIMER_CHANNEL_START_BB] = 0;
215+
NVIC_ClearPendingIRQ(TIMER2_IRQn);
216+
NVIC_EnableIRQ(TIMER2_IRQn);
217217
#endif
218218
#endif
219219

@@ -231,10 +231,10 @@ void PalTimerDeInit(void)
231231
{
232232
#if SCH_TIMER_REQUIRED == TRUE
233233
#if BB_CLK_RATE_HZ != 32768
234-
NVIC_DisableIRQ(TIMER1_IRQn);
234+
NVIC_DisableIRQ(TIMER2_IRQn);
235235

236236
/* stop timer */
237-
NRF_TIMER1->TASKS_STOP = 1;
237+
NRF_TIMER2->TASKS_STOP = 1;
238238
#endif
239239
#endif
240240

@@ -284,13 +284,13 @@ void PalTimerStart(uint32_t expTimeUsec)
284284
uint32_t startTimeTick = palTimerGetCurrentTime() + PAL_TIMER_US_TO_TICKS(expTimeUsec);
285285

286286
/* Clear pending events. */
287-
NRF_TIMER1->EVENTS_COMPARE[TIMER_CHANNEL_START_BB] = 0;
287+
NRF_TIMER2->EVENTS_COMPARE[TIMER_CHANNEL_START_BB] = 0;
288288

289289
/* Set compare value. */
290-
NRF_TIMER1->CC[TIMER_CHANNEL_START_BB] = startTimeTick;
290+
NRF_TIMER2->CC[TIMER_CHANNEL_START_BB] = startTimeTick;
291291

292292
/* Enable timer1 interrupt source for CC[0]. */
293-
NRF_TIMER1->INTENSET = TIMER_INTENSET_COMPARE0_Msk;
293+
NRF_TIMER2->INTENSET = TIMER_INTENSET_COMPARE0_Msk;
294294
#endif
295295

296296
palTimerCb.compareVal = startTimeTick;
@@ -317,7 +317,7 @@ void PalTimerStop()
317317
PalRtcDisableCompareIrq(RTC_CHANNEL_START_BB);
318318
#else
319319
/* Disable this interrupt */
320-
NRF_TIMER1->INTENCLR = TIMER_INTENCLR_COMPARE0_Msk;
320+
NRF_TIMER2->INTENCLR = TIMER_INTENCLR_COMPARE0_Msk;
321321
#endif
322322

323323
palTimerCb.state = PAL_TIMER_STATE_READY;
@@ -328,25 +328,25 @@ void PalTimerStop()
328328

329329
/*************************************************************************************************/
330330
/*!
331-
* \brief TIMER1 interrupt handler dedicated to scheduler timer.
331+
* \brief TIMER2 interrupt handler dedicated to scheduler timer.
332332
*/
333333
/*************************************************************************************************/
334-
void TIMER1_IRQHandler(void)
334+
void TIMER2_IRQHandler(void)
335335
{
336336
#ifdef DEBUG
337337
nrf_gpio_pin_set(PAL_TIMER_DEBUG_0_PIN);
338338
#endif
339339

340340
PAL_TIMER_CHECK(palTimerCb.state == PAL_TIMER_STATE_BUSY);
341341
/* Check hardware status */
342-
PAL_TIMER_CHECK(NRF_TIMER1->EVENTS_COMPARE[TIMER_CHANNEL_START_BB]);
343-
PAL_TIMER_CHECK(NRF_TIMER1->CC[TIMER_CHANNEL_START_BB] == palTimerCb.compareVal);
344-
PAL_TIMER_CHECK(NRF_TIMER1->INTENSET == TIMER_INTENSET_COMPARE0_Msk);
342+
PAL_TIMER_CHECK(NRF_TIMER2->EVENTS_COMPARE[TIMER_CHANNEL_START_BB]);
343+
PAL_TIMER_CHECK(NRF_TIMER2->CC[TIMER_CHANNEL_START_BB] == palTimerCb.compareVal);
344+
PAL_TIMER_CHECK(NRF_TIMER2->INTENSET == TIMER_INTENSET_COMPARE0_Msk);
345345

346346
/* Callback function could restart timer1. However, we blindly stop timer1 first. */
347-
NRF_TIMER1->INTENCLR = TIMER_INTENCLR_COMPARE0_Msk;
347+
NRF_TIMER2->INTENCLR = TIMER_INTENCLR_COMPARE0_Msk;
348348
/* Clear event again just in case. */
349-
NRF_TIMER1->EVENTS_COMPARE[TIMER_CHANNEL_START_BB] = 0;
349+
NRF_TIMER2->EVENTS_COMPARE[TIMER_CHANNEL_START_BB] = 0;
350350

351351
palTimerCb.state = PAL_TIMER_STATE_READY;
352352

0 commit comments

Comments
 (0)