mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-25 17:25:20 +03:00
Merge pull request #7754 from mikeller/fix_burst_dshot_without_dma
Fixed burst Dshot for pins that have no DMA available.
This commit is contained in:
commit
0deca9c6f5
2 changed files with 21 additions and 15 deletions
|
@ -216,27 +216,32 @@ void pwmDshotMotorHardwareConfig(const timerHardware_t *timerHardware, uint8_t m
|
||||||
#define DMAINIT dmaInitStruct
|
#define DMAINIT dmaInitStruct
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
dmaStream_t *dmaRef;
|
||||||
|
#if defined(STM32F4)
|
||||||
|
uint32_t dmaChannel;
|
||||||
|
#endif
|
||||||
#if defined(USE_DMA_SPEC)
|
#if defined(USE_DMA_SPEC)
|
||||||
const dmaChannelSpec_t *dmaSpec = dmaGetChannelSpecByTimer(timerHardware);
|
const dmaChannelSpec_t *dmaSpec = dmaGetChannelSpecByTimer(timerHardware);
|
||||||
|
|
||||||
if (dmaSpec == NULL) {
|
if (dmaSpec != NULL) {
|
||||||
return;
|
dmaRef = dmaSpec->ref;
|
||||||
}
|
|
||||||
|
|
||||||
dmaStream_t *dmaRef = dmaSpec->ref;
|
|
||||||
#if defined(STM32F4)
|
#if defined(STM32F4)
|
||||||
uint32_t dmaChannel = dmaSpec->channel;
|
dmaChannel = dmaSpec->channel;
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
dmaStream_t *dmaRef = timerHardware->dmaRef;
|
dmaRef = timerHardware->dmaRef;
|
||||||
#if defined(STM32F4)
|
#if defined(STM32F4)
|
||||||
uint32_t dmaChannel = timerHardware->dmaChannel;
|
dmaChannel = timerHardware->dmaChannel;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_DSHOT_DMAR
|
#ifdef USE_DSHOT_DMAR
|
||||||
if (useBurstDshot) {
|
if (useBurstDshot) {
|
||||||
dmaRef = timerHardware->dmaTimUPRef;
|
dmaRef = timerHardware->dmaTimUPRef;
|
||||||
|
#if defined(STM32F4)
|
||||||
|
dmaChannel = timerHardware->dmaTimUPChannel;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -200,23 +200,24 @@ void pwmDshotMotorHardwareConfig(const timerHardware_t *timerHardware, uint8_t m
|
||||||
#define DMAINIT dmaInitStruct
|
#define DMAINIT dmaInitStruct
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
DMA_Stream_TypeDef *dmaRef;
|
||||||
|
uint32_t dmaChannel;
|
||||||
#if defined(USE_DMA_SPEC)
|
#if defined(USE_DMA_SPEC)
|
||||||
const dmaChannelSpec_t *dmaSpec = dmaGetChannelSpecByTimer(timerHardware);
|
const dmaChannelSpec_t *dmaSpec = dmaGetChannelSpecByTimer(timerHardware);
|
||||||
|
|
||||||
if (dmaSpec == NULL) {
|
if (dmaSpec != NULL) {
|
||||||
return;
|
dmaRef = dmaSpec->ref;
|
||||||
|
dmaChannel = dmaSpec->channel;
|
||||||
}
|
}
|
||||||
|
|
||||||
DMA_Stream_TypeDef *dmaRef = dmaSpec->ref;
|
|
||||||
uint32_t dmaChannel = dmaSpec->channel;
|
|
||||||
#else
|
#else
|
||||||
DMA_Stream_TypeDef *dmaRef = timerHardware->dmaRef;
|
dmaRef = timerHardware->dmaRef;
|
||||||
uint32_t dmaChannel = timerHardware->dmaChannel;
|
dmaChannel = timerHardware->dmaChannel;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_DSHOT_DMAR
|
#ifdef USE_DSHOT_DMAR
|
||||||
if (useBurstDshot) {
|
if (useBurstDshot) {
|
||||||
dmaRef = timerHardware->dmaTimUPRef;
|
dmaRef = timerHardware->dmaTimUPRef;
|
||||||
|
dmaChannel = timerHardware->dmaTimUPChannel;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue