Update endstops before checking for errors

This commit is contained in:
Paul Guenette
2021-10-26 20:26:01 -04:00
parent d438607d7d
commit d1bb0049bf
2 changed files with 8 additions and 6 deletions

View File

@@ -2,7 +2,7 @@
Please add a note of your changes below this heading if you make a Pull Request.
* CANSimple messages which previously required the rtr bit to be set will now also respond if DLC = 0
* Ensure endstops update before being checked for errors, to prevent [#625](https://github.com/odriverobotics/ODrive/issues/625)
# Releases
## [0.5.4] - 2021-10-12

View File

@@ -400,6 +400,13 @@ void ODrive::control_loop_cb(uint32_t timestamp) {
odrv.oscilloscope_.update();
}
for (auto& axis : axes) {
MEASURE_TIME(axis.task_times_.endstop_update) {
axis.min_endstop_.update();
axis.max_endstop_.update();
}
}
MEASURE_TIME(task_times_.control_loop_checks) {
for (auto& axis: axes) {
// look for errors at axis level and also all subcomponents
@@ -432,11 +439,6 @@ void ODrive::control_loop_cb(uint32_t timestamp) {
MEASURE_TIME(axis.task_times_.sensorless_estimator_update)
axis.sensorless_estimator_.update();
MEASURE_TIME(axis.task_times_.endstop_update) {
axis.min_endstop_.update();
axis.max_endstop_.update();
}
MEASURE_TIME(axis.task_times_.controller_update)
axis.controller_.update(); // uses position and velocity from encoder