Hack in support for other boards/microcontrollers, add GpioDriver
There's definitely plenty of cleanup work to be done (see: "ifdefs").
This commit is contained in:
@@ -34,9 +34,15 @@ LptimPwm::LptimPwm(LPTIM_TypeDef *lptim)
|
||||
void LptimPwm::init_lptim()
|
||||
{
|
||||
/* Enable LPTIM in APB1 */
|
||||
#if defined(STM32L0XX)
|
||||
SET(RCC->APB1ENR,
|
||||
RCC_APB1ENR_LPTIM1EN);
|
||||
|
||||
#elif defined(STM32L4XX)
|
||||
SET(RCC->APB1ENR1,
|
||||
RCC_APB1ENR1_LPTIM1EN);
|
||||
#else
|
||||
#error "Unsupported family"
|
||||
#endif
|
||||
// Enable low-speed internal
|
||||
RCC->CSR |= RCC_CSR_LSION;
|
||||
while (!(RCC->CSR & RCC_CSR_LSIRDY)) {};
|
||||
@@ -90,21 +96,6 @@ ReturnCode LptimPwm::init()
|
||||
{
|
||||
init_lptim();
|
||||
|
||||
/* Enable GPIO port A */
|
||||
SET(RCC->IOPENR, RCC_IOPENR_IOPAEN);
|
||||
|
||||
/* Assign LPTIM1_OUT to PA7 */
|
||||
SET_TO(GPIOA->AFR[0],
|
||||
GPIO_AFRL_AFRL7,
|
||||
1u << GPIO_AFRL_AFRL7_Pos);
|
||||
|
||||
SET_TO(GPIOA->MODER,
|
||||
GPIO_MODER_MODE7,
|
||||
2u << GPIO_MODER_MODE7_Pos);
|
||||
|
||||
CLR(GPIOA->OTYPER, GPIO_OTYPER_OT_7);
|
||||
CLR(GPIOA->PUPDR, GPIO_PUPDR_PUPD7);
|
||||
|
||||
return ReturnCode::OK;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user