Hallo,
in den Funktionen odometry_getleft und odometry_getright ist meiner Ansicht nach ein logischer Fehler. Es müsste richtig heißen:
int16_t odometry_getLeft(uint8_t reset) {
int16_t res;
ATOMIC_C90_BEGIN()
/*
res = odometry_left - odometry_usr_left;
if (reset) {
odometry_usr_left = odometry_left;
}
*/
if (reset) {
odometry_usr_left = odometry_left;
}
res = odometry_left - odometry_usr_left;
ATOMIC_C90_END()
return res;
}