Skip to content

Commit b12be53

Browse files
author
Richard Unger
committed
fix micros overflow error in Sensor.cpp
1 parent 5e274ad commit b12be53

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/common/base_classes/Sensor.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,12 @@ void Sensor::update() {
1818
float Sensor::getVelocity() {
1919
// calculate sample time
2020
float Ts = (angle_prev_ts - vel_angle_prev_ts)*1e-6;
21-
// TODO handle overflow - we do need to reset vel_angle_prev_ts
21+
if (Ts < 0.0f) { // handle micros() overflow - we need to reset vel_angle_prev_ts
22+
vel_angle_prev = angle_prev;
23+
vel_full_rotations = full_rotations;
24+
vel_angle_prev_ts = angle_prev_ts;
25+
return velocity;
26+
}
2227
if (Ts < min_elapsed_time) return velocity; // don't update velocity if deltaT is too small
2328

2429
velocity = ( (float)(full_rotations - vel_full_rotations)*_2PI + (angle_prev - vel_angle_prev) ) / Ts;

0 commit comments

Comments
 (0)