summaryrefslogtreecommitdiff
path: root/src/kernel/ao_sample.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-08-24 16:45:54 -0700
committerKeith Packard <keithp@keithp.com>2017-08-27 17:38:58 -0700
commitcf20e213f39fb24f15e0ac94307c2d138fcadecb (patch)
tree49914763b691edb7164c762a49798294ad9c4350 /src/kernel/ao_sample.c
parent43e2275250d9c91560a770942f3c06a8f74ed501 (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.c2
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