Commit 0dec5f19 authored by Jean-Claude BAU's avatar Jean-Claude BAU

Fix servo issue : conversion pp_time to ps

The conversion has been fixed now for negative values.
parent 641f55f9
......@@ -95,10 +95,22 @@ void pp_time_div2(struct pp_time *t)
}
int64_t pp_time_to_picos(struct pp_time *ts)
int64_t pp_time_to_picos(struct pp_time *t)
{
return ts->secs * PP_PSEC_PER_SEC
+ ((ts->scaled_nsecs * 1000 + TIME_ROUNDING_VALUE) >> TIME_FRACBITS);
struct pp_time ut;
int64_t ret;
if (t->secs < 0 || (t->secs == 0 && t->scaled_nsecs < 0) ) {
ut.scaled_nsecs=-t->scaled_nsecs;
ut.secs=-t->secs;
ret =-1;
} else {
ret=1;
ut=*t;
}
ret*= ut.secs * PP_PSEC_PER_SEC
+ ((ut.scaled_nsecs * 1000 + TIME_ROUNDING_VALUE) >> TIME_FRACBITS);
return ret;
}
void fixedDelta_to_pp_time(struct FixedDelta fd, struct pp_time *t) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment