diff --git a/radio/src/bootloader/boot.cpp b/radio/src/bootloader/boot.cpp index b612ce469..e39373e60 100644 --- a/radio/src/bootloader/boot.cpp +++ b/radio/src/bootloader/boot.cpp @@ -281,28 +281,6 @@ extern "C" void TIM8_TRG_COM_TIM14_IRQHandler() TIM14->SR &= ~TIM_SR_UIF; interrupt10ms(); } - -void init_hw_timer() -{ - // Timer13 - RCC->APB1ENR |= RCC_APB1ENR_TIM13EN; // Enable clock - TIM13->ARR = 65535; - TIM13->PSC = (PERI1_FREQUENCY * TIMER_MULT_APB1) / 10000000 - 1;// 0.1uS from 12MHz - TIM13->CCER = 0; - TIM13->CCMR1 = 0; - TIM13->EGR = 0; - TIM13->CR1 = 1; -} - -// delay in units of 0.1 uS up to 6.5535 mS -void hw_delay(uint16_t time) -{ - TIM13->CNT = 0; - TIM13->EGR = 1; // Re-start counter - while ( TIM13->CNT < time) { - // wait - } -} #endif FRESULT readBinDir(DIR *dj, FILINFO *fno) @@ -507,13 +485,9 @@ int main() #endif #if defined(PCBTARANIS) - init_hw_timer(); //needed for lcdInitxxx() - lcdInitStart(); - //nothing to do here - lcdInitFinish(); -#else - lcdInit(); + delaysInit(); //needed for lcdInit() #endif + lcdInit(); #if defined(PCBSKY9X) extern uint8_t OptrexDisplay; diff --git a/radio/src/lcd.h b/radio/src/lcd.h index 666651f86..b4913bc4a 100644 --- a/radio/src/lcd.h +++ b/radio/src/lcd.h @@ -298,12 +298,10 @@ void lcd_img(coord_t x, coord_t y, const pm_uchar * img, uint8_t idx, LcdFlags a void lcdSetRefVolt(unsigned char val); void lcd_clear(); void lcdSetContrast(); +void lcdInit(); #if defined(PCBTARANIS) - void lcdInitStart(); - void lcdInitFinish(); void lcdOff(); #else - void lcdInit(); #define lcdOff() #endif diff --git a/radio/src/targets/taranis/board_taranis.cpp b/radio/src/targets/taranis/board_taranis.cpp index b3a181acb..32a0459b0 100644 --- a/radio/src/targets/taranis/board_taranis.cpp +++ b/radio/src/targets/taranis/board_taranis.cpp @@ -125,7 +125,7 @@ void boardInit() keysInit(); adcInit(); delaysInit(); - lcdInitStart(); + lcdInit(); // delaysInit() must be called before audioInit(); init2MhzTimer(); init5msTimer(); diff --git a/radio/src/targets/taranis/board_taranis.h b/radio/src/targets/taranis/board_taranis.h index 46c4f2920..13210f665 100644 --- a/radio/src/targets/taranis/board_taranis.h +++ b/radio/src/targets/taranis/board_taranis.h @@ -111,10 +111,14 @@ extern uint16_t sessionTimer; #define SLAVE_MODE() (g_model.trainerMode == TRAINER_MODE_SLAVE) #define TRAINER_CONNECTED() (GPIO_ReadInputDataBit(GPIOTRNDET, PIN_TRNDET) == Bit_RESET) -void delaysInit(void); - +#ifdef __cplusplus +extern "C" { +#endif void delaysInit(void); void delay_01us(uint16_t nb); +#ifdef __cplusplus +} +#endif // SD driver #if defined(SIMU) diff --git a/radio/src/targets/taranis/lcd_driver.cpp b/radio/src/targets/taranis/lcd_driver.cpp index cbc209a35..1a45dc236 100644 --- a/radio/src/targets/taranis/lcd_driver.cpp +++ b/radio/src/targets/taranis/lcd_driver.cpp @@ -28,22 +28,16 @@ extern void hw_delay(uint16_t time); #endif -#if !defined(BOOT) - bool lcdInitFinished = false; -#endif +bool lcdInitFinished = false; +void lcdInitFinish(); /* - In boot-loader: init_hw_timer() must be called before the first call to this function! - In opentx: delaysInit() must be called before the first call to this function! + delaysInit() must be called before the first call to this function! */ static void Delay(uint32_t ms) { while(ms--) { -#if !defined(BOOT) delay_01us(10000); -#else - hw_delay(10000); -#endif } } @@ -192,11 +186,9 @@ void lcdRefreshWait() void lcdRefresh(bool wait) { -#if !defined(BOOT) if (!lcdInitFinished) { lcdInitFinish(); } -#endif //wait if previous DMA transfer still active WAIT_FOR_DMA_END(); @@ -241,11 +233,9 @@ extern "C" void DMA1_Stream7_IRQHandler() #else // #if defined(REVPLUS) void lcdRefresh() { -#if !defined(BOOT) if (!lcdInitFinished) { lcdInitFinish(); } -#endif for (uint32_t y=0; y