mirror of https://github.com/ARMmbed/mbed-os.git
[BEETLE] Update disable dualtimer irq function
This patch updates DualTimer_DisableInterrupt to disable the interrupt timers individually. In addition, it updates lp_ticker accordingly. Signed-off-by: Marc Moreno <marc.morenoberengue@arm.com>pull/3046/head
parent
e2efb35723
commit
a3eacfd8d1
|
|
@ -297,18 +297,38 @@ void DualTimer_SetInterrupt_2(uint32_t timer, uint32_t time_us,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DualTimer_DisableInterrupt(): disables timer interrupt
|
* DualTimer_DisableInterrupt(): disables timer interrupts
|
||||||
* timer: timer on which interrupt is disabled
|
* dualimer: dualtimer on which interrupt is disabled
|
||||||
|
* single_timer: single timer in the dualtimer on which
|
||||||
|
* interrupt is disabled
|
||||||
*/
|
*/
|
||||||
void DualTimer_DisableInterrupt(uint32_t timer)
|
void DualTimer_DisableInterrupt(uint32_t dualtimer,
|
||||||
|
uint32_t single_timer)
|
||||||
{
|
{
|
||||||
/* Verify if the Timer is enabled */
|
/* Verify if the Timer is enabled */
|
||||||
if (DualTimer_isEnabled(timer) == 1) {
|
if (DualTimer_isEnabled(dualtimer) == 1) {
|
||||||
/* Disable Interrupt */
|
switch(single_timer) {
|
||||||
(DualTimers[timer].dualtimer1)->TimerControl &=
|
case SINGLETIMER1:
|
||||||
|
/* Disable Interrupt for single timer 1 */
|
||||||
|
(DualTimers[dualtimer].dualtimer1)->TimerControl &=
|
||||||
CMSDK_DUALTIMER_CTRL_EN_Msk;
|
CMSDK_DUALTIMER_CTRL_EN_Msk;
|
||||||
(DualTimers[timer].dualtimer2)->TimerControl &=
|
break;
|
||||||
|
case SINGLETIMER2:
|
||||||
|
/* Disable Interrupt for single timer 2 */
|
||||||
|
(DualTimers[dualtimer].dualtimer2)->TimerControl &=
|
||||||
CMSDK_DUALTIMER_CTRL_EN_Msk;
|
CMSDK_DUALTIMER_CTRL_EN_Msk;
|
||||||
|
break;
|
||||||
|
case ALL_SINGLETIMERS:
|
||||||
|
/* Disable Interrupt for single timer 1 */
|
||||||
|
(DualTimers[dualtimer].dualtimer1)->TimerControl &=
|
||||||
|
CMSDK_DUALTIMER_CTRL_EN_Msk;
|
||||||
|
/* Disable Interrupt for single timer 2 */
|
||||||
|
(DualTimers[dualtimer].dualtimer2)->TimerControl &=
|
||||||
|
CMSDK_DUALTIMER_CTRL_EN_Msk;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ extern "C" {
|
||||||
#define DUALTIMER0 0
|
#define DUALTIMER0 0
|
||||||
#define SINGLETIMER1 1
|
#define SINGLETIMER1 1
|
||||||
#define SINGLETIMER2 2
|
#define SINGLETIMER2 2
|
||||||
|
#define ALL_SINGLETIMERS 3
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DualTimer_Initialize(): Initializes a hardware timer
|
* DualTimer_Initialize(): Initializes a hardware timer
|
||||||
|
|
@ -107,10 +108,13 @@ void DualTimer_SetInterrupt_2(uint32_t timer, uint32_t time_us,
|
||||||
timerenable_t mode);
|
timerenable_t mode);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DualTimer_DisableInterrupt(): disables timer interrupt
|
* DualTimer_DisableInterrupt(): disables timer interrupts
|
||||||
* timer: timer on which interrupt is disabled
|
* dualimer: dualtimer on which interrupt is disabled
|
||||||
|
* single_timer: single timer in the dualtimer on which
|
||||||
|
* interrupt is disabled
|
||||||
*/
|
*/
|
||||||
void DualTimer_DisableInterrupt(uint32_t timer);
|
void DualTimer_DisableInterrupt(uint32_t dualtimer,
|
||||||
|
uint32_t single_timer);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DualTimer_ClearInterrupt(): clear timer interrupt
|
* DualTimer_ClearInterrupt(): clear timer interrupt
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,8 @@ void lp_ticker_set_interrupt(timestamp_t timestamp)
|
||||||
void lp_ticker_disable_interrupt(void)
|
void lp_ticker_disable_interrupt(void)
|
||||||
{
|
{
|
||||||
/* Disable Interrupt */
|
/* Disable Interrupt */
|
||||||
DualTimer_DisableInterrupt(DUALTIMER0);
|
DualTimer_DisableInterrupt(DUALTIMER0,
|
||||||
|
SINGLETIMER1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue