Skip to content

Commit 09a6580

Browse files
3djcraphaelcoeffic
authored andcommitted
Fix colorlcd FRM302 (#8624)
1 parent e4b6209 commit 09a6580

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

radio/src/pulses/pulses.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ void enablePulsesExternalModule(uint8_t protocol)
311311
#if defined(AFHDS3)
312312
case PROTOCOL_CHANNELS_AFHDS3:
313313
extmodulePulsesData.afhds3.init(EXTERNAL_MODULE);
314-
extmoduleSerialStart(/*AFHDS3_BAUDRATE, AFHDS3_COMMAND_TIMEOUT * 2000, false*/);
314+
extmoduleSerialStart();
315315
mixerSchedulerSetPeriod(EXTERNAL_MODULE, AFHDS3_COMMAND_TIMEOUT * 1000 /* us */);
316316
break;
317317
#endif

radio/src/targets/horus/extmodule_driver.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -325,19 +325,21 @@ void extmoduleSendNextFrame()
325325
#if defined(EXTMODULE_USART) && defined(EXTMODULE_TX_INVERT_GPIO)
326326
extmoduleSendBuffer(extmodulePulsesData.afhds3.getData(), extmodulePulsesData.afhds3.getSize());
327327
#else
328+
if (EXTMODULE_TIMER_DMA_STREAM->CR & DMA_SxCR_EN)
329+
return;
330+
328331
const uint16_t* dataPtr = extmodulePulsesData.afhds3.getData();
329332
uint32_t dataSize = extmodulePulsesData.afhds3.getSize();
330-
//Peripheral data size
331-
//we know that afdhds3 uses 2 byte values!
332-
uint32_t dmaSize = (EXTMODULE_TIMER_DMA_SIZE & (DMA_SxCR_PSIZE_0 | DMA_SxCR_PSIZE_1)) | DMA_SxCR_MSIZE_0;
333-
334-
EXTMODULE_TIMER->CCR2 = dataPtr[dataSize -1] - 4000; // 2mS in advance
335333
EXTMODULE_TIMER_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA
336-
EXTMODULE_TIMER_DMA_STREAM->CR |= EXTMODULE_TIMER_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | dmaSize | DMA_SxCR_PL_0 | DMA_SxCR_PL_1;
334+
EXTMODULE_TIMER_DMA_STREAM->CR |= EXTMODULE_TIMER_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | DMA_SxCR_PSIZE_0 | DMA_SxCR_MSIZE_0 | DMA_SxCR_PL_0 | DMA_SxCR_PL_1;
337335
EXTMODULE_TIMER_DMA_STREAM->PAR = CONVERT_PTR_UINT(&EXTMODULE_TIMER->ARR);
338336
EXTMODULE_TIMER_DMA_STREAM->M0AR = CONVERT_PTR_UINT(dataPtr);
339-
EXTMODULE_TIMER_DMA_STREAM->NDTR = (uint32_t)dataSize;
337+
EXTMODULE_TIMER_DMA_STREAM->NDTR = dataSize;
340338
EXTMODULE_TIMER_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA
339+
340+
// re-init timer
341+
EXTMODULE_TIMER->EGR = TIM_PSCReloadMode_Immediate;
342+
EXTMODULE_TIMER->CR1 |= TIM_CR1_CEN;
341343
#endif
342344
}
343345
break;

0 commit comments

Comments
 (0)