mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
fe46cae00d
The current phydat_fit implementation the following limitations: - The API is way more complicated to use than needed - It doesn't perform any rounding - It uses `long` in a place where actual width (or better range) of the type is pretty important. This commit addresses these limitations and uses lookup-tables to reduce the number of divisions required. Before this commit code using it looked like this: ``` C long values[] = { 100000, 2000000, 30000000 }; phydat_t dat = { .scale = 42, .unit = UNIT_V }; phydat_fit(&dat, values[0], 0, phydat_fit(&dat, values[1], 1, phydat_fit(&dat, values[2], 2, 0))); ``` Now it can be used like this: ``` C int32_t values[] = { 100000, 2000000, 30000000 }; phydat_t dat = { .unit = UNIT_V, .scale = 42 }; phydat_fit(&dat, values, 3); ``` |
||
---|---|---|
.. | ||
Makefile | ||
phydat_str.c | ||
phydat.c |