mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
Kaspar Schleiser
1ff609167e
When using convert_frac to slow down a timer, the extension machinery is used to prevent converting values that would be larger than, after conversion, 2**32. In order to calculate the maximum value, UINT32_MAX is converted. Previously, this was mistakenly converted by multiplying with the fraction used to scale up a value. E.g., when using convert_frac to slow down a 1us timer to provide a 1ms timer, UINT32_MAX was multiplied by 1000. As the result is used % UINT32_MAX, this lead to a wrong value close to UINT32_MAX, as ((UINT32_MAX * N) % UINT32_MAX = (UINT32_MAX - N - 1)). This PR fixes the calculation so max_value is determined by multiplying with the fraction used to scale down a value. |
||
---|---|---|
.. | ||
auto_init.c | ||
convert_frac.c | ||
convert_muldiv64.c | ||
convert_shift.c | ||
convert.c | ||
core.c | ||
Makefile | ||
Makefile.dep | ||
mock.c | ||
overhead.c | ||
periph_rtc.c | ||
periph_rtt.c | ||
periph_timer.c | ||
util.c | ||
xtimer2ztimer.cocci |