When sleeping in the main function with xtimer_sleep not every percentage
will be printed as the sleep duration and the processing time added do
not result in full percentage values.
Using xtimer_periodic_wakeup ensures that every integer percentage is printed.
The current test implementation wrongly assumes that the diff between
two fired events (e1, e2) must always increase. That is not true, as
event e1 may reside on the upper part of [I/2, I) and e2 on the lower
part of [I, 2*I).
This commit fixes the test to look at the actual time that was randonmly
chosen from both intervals (t1, t2). Given that the intervals are
doubled, t1 must always be smaller than t2.
The unification of a bigger stack for the atmega platforms
makes some boards to not have enough memory to provide
the big stack plus the application code.
It is possible though, to override the stack size to a
smaller amount if running the test is necessary.
Stack size is changed from 4 times the default + printf to 5 times the
default stack size. Only on the lpc2387 this reduces the resulting stack
space. the test is not rerun for the lpc2387 and is untested.
Tests are disable for the Arduino. While they "might" work, it takes
around 8 minutes to complete the tests.
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);
```
It demonstrates:
* Adding a module with source code
* Setting a header include directory
* Adding dependences, which are evaluated before other modules dependencies
If the application compiles, everything is ok.
Test breaks on wsn430 boards with the node rebooting.
This must come becauso `micro-ecc` does not have 16b support.
I also blacklisted the other 16bits boards.
* https://github.com/kmackay/micro-ecc/issues/96