Skip to content

Commit ace8210

Browse files
committed
Add implementation of ticker_free() function to CI boards.
This PR provides implementation of ticker_free() function for the following boards: ARCH_PRO EV_COG_AD3029LZ EV_COG_AD4050LZ K22F K64F K82F KW24D KW41Z LPC546XX NRF51_DK NRF52_DK NUCLEO_F207ZG NUCLEO_F401RE NUCLEO_F429ZI NUCLEO_F746ZG REALTEK_RTL8195AM
1 parent c0ee843 commit ace8210

File tree

16 files changed

+69
-13
lines changed

16 files changed

+69
-13
lines changed

targets/TARGET_Analog_Devices/TARGET_ADUCM302X/TARGET_ADUCM3029/api/us_ticker.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ void us_ticker_fire_interrupt(void)
357357

358358
void us_ticker_free(void)
359359
{
360-
360+
adi_tmr_Enable(ADI_TMR_DEVICE_GP2, false);
361361
}
362362

363363
/*

targets/TARGET_Analog_Devices/TARGET_ADUCM4X50/TARGET_ADUCM4050/api/us_ticker.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ void us_ticker_fire_interrupt(void)
355355

356356
void us_ticker_free(void)
357357
{
358-
358+
adi_tmr_Enable(ADI_TMR_DEVICE_GP2, false);
359359
}
360360

361361
/*

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_K82F/us_ticker.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,5 +139,13 @@ void us_ticker_fire_interrupt(void)
139139

140140
void us_ticker_free(void)
141141
{
142+
PIT_StopTimer(PIT, kPIT_Chnl_3);
143+
PIT_StopTimer(PIT, kPIT_Chnl_2);
144+
PIT_StopTimer(PIT, kPIT_Chnl_1);
145+
PIT_StopTimer(PIT, kPIT_Chnl_0);
146+
147+
PIT_DisableInterrupts(PIT, kPIT_Chnl_3, kPIT_TimerInterruptEnable);
148+
NVIC_DisableIRQ(PIT3_IRQn);
142149

150+
us_ticker_inited = false;
143151
}

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_KW24D/us_ticker.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,5 +139,13 @@ void us_ticker_fire_interrupt(void)
139139

140140
void us_ticker_free(void)
141141
{
142+
PIT_StopTimer(PIT, kPIT_Chnl_3);
143+
PIT_StopTimer(PIT, kPIT_Chnl_2);
144+
PIT_StopTimer(PIT, kPIT_Chnl_1);
145+
PIT_StopTimer(PIT, kPIT_Chnl_0);
146+
147+
PIT_DisableInterrupts(PIT, kPIT_Chnl_3, kPIT_TimerInterruptEnable);
148+
NVIC_DisableIRQ(PIT3_IRQn);
142149

150+
us_ticker_inited = false;
143151
}

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_KW41Z/us_ticker.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,5 +155,11 @@ void us_ticker_fire_interrupt(void)
155155

156156
void us_ticker_free(void)
157157
{
158+
PIT_StopTimer(PIT, kPIT_Chnl_1);
159+
PIT_StopTimer(PIT, kPIT_Chnl_0);
158160

161+
TPM_DisableInterrupts(TPM2, kTPM_TimeOverflowInterruptEnable);
162+
NVIC_DisableIRQ(TPM2_IRQn);
163+
164+
us_ticker_inited = false;
159165
}

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_MCU_K22F/us_ticker.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,5 +139,13 @@ void us_ticker_fire_interrupt(void)
139139

140140
void us_ticker_free(void)
141141
{
142+
PIT_StopTimer(PIT, kPIT_Chnl_3);
143+
PIT_StopTimer(PIT, kPIT_Chnl_2);
144+
PIT_StopTimer(PIT, kPIT_Chnl_1);
145+
PIT_StopTimer(PIT, kPIT_Chnl_0);
146+
147+
PIT_DisableInterrupts(PIT, kPIT_Chnl_3, kPIT_TimerInterruptEnable);
148+
NVIC_DisableIRQ(PIT3_IRQn);
142149

150+
us_ticker_inited = false;
143151
}

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_MCU_K64F/us_ticker.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ void us_ticker_init(void)
7070
PIT_StopTimer(PIT, kPIT_Chnl_2);
7171
PIT_SetTimerPeriod(PIT, kPIT_Chnl_2, busClock / 1000000 - 1);
7272
PIT_SetTimerChainMode(PIT, kPIT_Chnl_3, true);
73+
PIT_ClearStatusFlags(PIT, kPIT_Chnl_3, PIT_TFLG_TIF_MASK);
7374
NVIC_SetVector(PIT3_IRQn, (uint32_t) pit_isr);
7475
NVIC_EnableIRQ(PIT3_IRQn);
7576
PIT_DisableInterrupts(PIT, kPIT_Chnl_3, kPIT_TimerInterruptEnable);
@@ -139,5 +140,13 @@ void us_ticker_fire_interrupt(void)
139140

140141
void us_ticker_free(void)
141142
{
143+
PIT_StartTimer(PIT, kPIT_Chnl_3);
144+
PIT_StartTimer(PIT, kPIT_Chnl_2);
145+
PIT_StartTimer(PIT, kPIT_Chnl_1);
146+
PIT_StartTimer(PIT, kPIT_Chnl_0);
147+
148+
PIT_DisableInterrupts(PIT, kPIT_Chnl_3, kPIT_TimerInterruptEnable);
149+
NVIC_DisableIRQ(PIT3_IRQn);
142150

151+
us_ticker_inited = false;
143152
}

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/api/lp_ticker.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ void lp_ticker_init(void)
6969
lp_ticker_inited = true;
7070
} else {
7171
LPTMR_DisableInterrupts(LPTMR0, kLPTMR_TimerInterruptEnable);
72+
NVIC_EnableIRQ(LPTMR0_IRQn);
7273
}
7374
}
7475

@@ -119,7 +120,8 @@ void lp_ticker_clear_interrupt(void)
119120

120121
void lp_ticker_free(void)
121122
{
122-
123+
LPTMR_DisableInterrupts(LPTMR0, kLPTMR_TimerInterruptEnable);
124+
NVIC_DisableIRQ(LPTMR0_IRQn);
123125
}
124126

125127
#endif /* DEVICE_LPTICKER */

targets/TARGET_NORDIC/TARGET_NRF5x/common_rtc.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,15 @@ void common_rtc_init(void)
180180
m_common_rtc_enabled = true;
181181
}
182182

183+
void common_rtc_free()
184+
{
185+
nrf_rtc_task_trigger(COMMON_RTC_INSTANCE, NRF_RTC_TASK_STOP);
186+
nrf_rtc_int_disable(COMMON_RTC_INSTANCE, LP_TICKER_INT_MASK);
187+
NVIC_DisableIRQ(nrf_drv_get_IRQn(COMMON_RTC_INSTANCE));
188+
189+
m_common_rtc_enabled = false;
190+
}
191+
183192
void common_rtc_set_interrupt(uint32_t ticks_count, uint32_t cc_channel,
184193
uint32_t int_mask)
185194
{

targets/TARGET_NORDIC/TARGET_NRF5x/lp_ticker.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ void lp_ticker_init(void)
3636

3737
void lp_ticker_free(void)
3838
{
39-
// A common counter is used for RTC, lp_ticker and us_ticker, so it can't be
40-
// disabled here, but this does not cause any extra cost.
39+
common_rtc_free();
4140
}
4241

4342
uint32_t lp_ticker_read()

0 commit comments

Comments
 (0)