From 589e02755b130b96ba965fb117e41d0a2f0d5af0 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sat, 30 Nov 2013 22:42:51 +0100 Subject: [PATCH] Fixes #154 --- src/simpgmspace.h | 1 + src/targets/taranis/audio_driver.cpp | 2 ++ src/targets/taranis/board_taranis.cpp | 1 + src/targets/taranis/pulses_driver.cpp | 11 ++++++++++- src/targets/taranis/sport_driver.cpp | 1 + src/targets/taranis/trainer_driver.cpp | 2 ++ src/targets/taranis/uart_driver.cpp | 1 + 7 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/simpgmspace.h b/src/simpgmspace.h index 14f3603fb..94fffce39 100644 --- a/src/simpgmspace.h +++ b/src/simpgmspace.h @@ -326,6 +326,7 @@ extern volatile uint32_t Tenms; extern uint32_t Master_frequency; #define NVIC_EnableIRQ(x) #define NVIC_DisableIRQ(x) +#define NVIC_SetPriority(...) #define __disable_irq() #define __enable_irq() #endif diff --git a/src/targets/taranis/audio_driver.cpp b/src/targets/taranis/audio_driver.cpp index f5cfd5eb5..d0b0508aa 100644 --- a/src/targets/taranis/audio_driver.cpp +++ b/src/targets/taranis/audio_driver.cpp @@ -88,7 +88,9 @@ void dacInit() DAC->CR = DAC_CR_TEN1 | DAC_CR_EN1 ; // Enable DAC NVIC_SetPriority(DMA1_Stream5_IRQn, 2) ; // High priority interrupt NVIC_EnableIRQ(TIM6_DAC_IRQn) ; // TODO needed? + NVIC_SetPriority(TIM6_DAC_IRQn, 7); NVIC_EnableIRQ(DMA1_Stream5_IRQn) ; + NVIC_SetPriority(DMA1_Stream5_IRQn, 7); } bool dacQueue(AudioBuffer *buffer) diff --git a/src/targets/taranis/board_taranis.cpp b/src/targets/taranis/board_taranis.cpp index 0777d8502..36987fab9 100644 --- a/src/targets/taranis/board_taranis.cpp +++ b/src/targets/taranis/board_taranis.cpp @@ -155,6 +155,7 @@ void init5msTimer() TIM14->CR1 = 5 ; TIM14->DIER |= 1 ; NVIC_EnableIRQ(TIM8_TRG_COM_TIM14_IRQn) ; + NVIC_SetPriority(TIM8_TRG_COM_TIM14_IRQn, 7); } void stop5msTimer( void ) diff --git a/src/targets/taranis/pulses_driver.cpp b/src/targets/taranis/pulses_driver.cpp index 50f5c2fcb..03dba6085 100644 --- a/src/targets/taranis/pulses_driver.cpp +++ b/src/targets/taranis/pulses_driver.cpp @@ -160,6 +160,7 @@ static void init_pa10_none() TIM1->DIER |= TIM_DIER_CC2IE ; // Enable this interrupt TIM1->CR1 |= TIM_CR1_CEN ; NVIC_EnableIRQ(TIM1_CC_IRQn) ; + NVIC_SetPriority(TIM1_CC_IRQn, 7); } static void disable_pa10_none() @@ -202,6 +203,7 @@ static void init_pa7_none() TIM8->DIER |= TIM_DIER_CC2IE ; // Enable this interrupt TIM8->CR1 |= TIM_CR1_CEN ; NVIC_EnableIRQ(TIM8_CC_IRQn) ; + NVIC_SetPriority(TIM8_CC_IRQn, 7); } static void disable_pa7_none() @@ -267,7 +269,8 @@ static void init_pa10_pxx() TIM1->SR &= ~TIM_SR_CC2IF ; // Clear flag TIM1->DIER |= TIM_DIER_CC2IE ; // Enable this interrupt TIM1->CR1 |= TIM_CR1_CEN ; - NVIC_EnableIRQ(TIM1_CC_IRQn) ; + NVIC_EnableIRQ(TIM1_CC_IRQn); + NVIC_SetPriority(TIM1_CC_IRQn, 7); } static void disable_pa10_pxx() @@ -316,7 +319,9 @@ static void init_pa10_ppm() TIM1->CR1 = TIM_CR1_CEN ; NVIC_EnableIRQ(TIM1_CC_IRQn) ; + NVIC_SetPriority(TIM1_CC_IRQn, 7); NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn) ; + NVIC_SetPriority(TIM1_UP_TIM10_IRQn, 7); } static void disable_pa10_ppm() @@ -428,6 +433,7 @@ static void init_pa7_pxx() TIM8->DIER |= TIM_DIER_CC2IE ; // Enable this interrupt TIM8->CR1 |= TIM_CR1_CEN ; NVIC_EnableIRQ(TIM8_CC_IRQn) ; + NVIC_SetPriority(TIM8_CC_IRQn, 7); } static void disable_pa7_pxx() @@ -501,6 +507,7 @@ static void init_pa7_dsm2() TIM8->DIER |= TIM_DIER_CC2IE ; // Enable this interrupt TIM8->CR1 |= TIM_CR1_CEN ; NVIC_EnableIRQ(TIM8_CC_IRQn) ; + NVIC_SetPriority(TIM8_CC_IRQn, 7); } static void disable_pa7_dsm2() @@ -555,7 +562,9 @@ static void init_pa7_ppm() TIM8->CR1 = TIM_CR1_CEN ; NVIC_EnableIRQ(TIM8_CC_IRQn) ; + NVIC_SetPriority(TIM8_CC_IRQn, 7); NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn) ; + NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 7); } static void disable_pa7_ppm() diff --git a/src/targets/taranis/sport_driver.cpp b/src/targets/taranis/sport_driver.cpp index 1fa9b60e8..04f3d1698 100644 --- a/src/targets/taranis/sport_driver.cpp +++ b/src/targets/taranis/sport_driver.cpp @@ -78,6 +78,7 @@ void sportInit(void) USART_ITConfig(SPORT, USART_IT_RXNE, ENABLE); NVIC_EnableIRQ(USART2_IRQn); + NVIC_SetPriority(USART2_IRQn, 6); } void sportPutc(const char c) diff --git a/src/targets/taranis/trainer_driver.cpp b/src/targets/taranis/trainer_driver.cpp index 1b8787540..9319cc18b 100644 --- a/src/targets/taranis/trainer_driver.cpp +++ b/src/targets/taranis/trainer_driver.cpp @@ -71,6 +71,7 @@ void init_trainer_ppm() TIM3->CR1 = TIM_CR1_CEN ; NVIC_EnableIRQ(TIM3_IRQn) ; + NVIC_SetPriority(TIM3_IRQn, 7); } // TODO - testing @@ -99,6 +100,7 @@ void init_trainer_capture() TIM3->DIER |= TIM_DIER_CC3IE ; TIM3->CR1 = TIM_CR1_CEN ; NVIC_EnableIRQ(TIM3_IRQn) ; + NVIC_SetPriority(TIM3_IRQn, 7); } void stop_trainer_capture() diff --git a/src/targets/taranis/uart_driver.cpp b/src/targets/taranis/uart_driver.cpp index 8c1ec1de6..0d85fe579 100644 --- a/src/targets/taranis/uart_driver.cpp +++ b/src/targets/taranis/uart_driver.cpp @@ -69,6 +69,7 @@ void uartInit(uint32_t baudrate) USART_ITConfig(UART3, USART_IT_TXE, DISABLE); NVIC_EnableIRQ(USART3_IRQn); + NVIC_SetPriority(USART3_IRQn, 8); } #if defined(DEBUG)