Merge pull request #5553 from EmergReanimator/stm

Improved accuracy of common_hal_mcu_delay_us of STM port.
This commit is contained in:
Scott Shawcroft 2021-11-08 09:57:44 -08:00 committed by GitHub
commit e5c7ff738b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -41,13 +41,14 @@
#include "supervisor/shared/safe_mode.h"
void common_hal_mcu_delay_us(uint32_t delay) {
uint32_t ticks_per_us = HAL_RCC_GetSysClockFreq() / 1000000;
uint32_t ticks_per_us = HAL_RCC_GetSysClockFreq() / 1000000UL;
delay *= ticks_per_us;
SysTick->VAL = 0UL;
SysTick->LOAD = delay;
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_ENABLE_Msk;
while ((SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) == 0) {
}
SysTick->CTRL = 0;
SysTick->CTRL = 0UL;
}
volatile uint32_t nesting_count = 0;