diff options
author | Keith Packard <keithp@keithp.com> | 2017-08-24 16:45:54 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2017-08-27 17:38:58 -0700 |
commit | cf20e213f39fb24f15e0ac94307c2d138fcadecb (patch) | |
tree | 49914763b691edb7164c762a49798294ad9c4350 /src/kernel/ao_sample.c | |
parent | 43e2275250d9c91560a770942f3c06a8f74ed501 (diff) |
altos: Perform time comparisons using 16-bit arithmetic to handle wrap
Subtracting two 16-bit unsigned values to perform time comparisons
yields mystic results unless we carefully cast that to int16_t.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/kernel/ao_sample.c')
-rw-r--r-- | src/kernel/ao_sample.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/kernel/ao_sample.c b/src/kernel/ao_sample.c index 90ea07ad..f0ab0169 100644 --- a/src/kernel/ao_sample.c +++ b/src/kernel/ao_sample.c @@ -180,7 +180,7 @@ static void ao_sample_rotate(void) { #ifdef AO_FLIGHT_TEST - float dt = (ao_sample_tick - ao_sample_prev_tick) / TIME_DIV; + float dt = (int16_t) (ao_sample_tick - ao_sample_prev_tick) / TIME_DIV; #else static const float dt = 1/TIME_DIV; #endif |