1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-23 08:15:30 +03:00

Constrain divisor range to 2~256.

This commit is contained in:
jflyper 2018-09-30 01:14:52 +09:00
parent d557203fac
commit 8723416640
2 changed files with 8 additions and 2 deletions

View file

@ -26,6 +26,7 @@
#ifdef USE_SPI
#include "common/maths.h"
#include "drivers/bus.h"
#include "drivers/bus_spi.h"
#include "drivers/bus_spi_impl.h"
@ -186,10 +187,12 @@ void spiSetDivisor(SPI_TypeDef *instance, uint16_t divisor)
}
#endif
divisor = constrain(divisor, 2, 256);
SPI_Cmd(instance, DISABLE);
const uint16_t tempRegister = (instance->CR1 & ~BR_BITS);
instance->CR1 = tempRegister | (divisor ? ((ffs(divisor | 0x100) - 2) << 3) : 0);
instance->CR1 = tempRegister | ((ffs(divisor) - 2) << 3);
SPI_Cmd(instance, ENABLE);