We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent ade55da commit e1a6586Copy full SHA for e1a6586
libraries/SrcWrapper/src/stm32/clock.c
@@ -28,16 +28,17 @@ extern "C" {
28
*/
29
uint32_t getCurrentMicros(void)
30
{
31
- /* Ensure COUNTFLAG is reset by reading SysTick control and status register */
32
- LL_SYSTICK_IsActiveCounterFlag();
33
- uint32_t m = HAL_GetTick();
+ uint32_t m0 = HAL_GetTick();
+ __IO uint32_t u0 = SysTick->VAL;
+ uint32_t m1 = HAL_GetTick();
34
+ __IO uint32_t u1 = SysTick->VAL;
35
const uint32_t tms = SysTick->LOAD + 1;
- __IO uint32_t u = tms - SysTick->VAL;
36
- if (LL_SYSTICK_IsActiveCounterFlag()) {
37
- m = HAL_GetTick();
38
- u = tms - SysTick->VAL;
+
+ if (m1 != m0) {
+ return ( m1 * 1000 + ((tms - u1) * 1000) / tms);
39
+ } else {
40
+ return ( m0 * 1000 + ((tms - u0) * 1000) / tms);
41
}
- return (m * 1000 + (u * 1000) / tms);
42
43
44
/**
0 commit comments