summaryrefslogtreecommitdiffhomepage
path: root/digital
diff options
context:
space:
mode:
Diffstat (limited to 'digital')
-rw-r--r--digital/asserv/src/asserv/pos.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/digital/asserv/src/asserv/pos.c b/digital/asserv/src/asserv/pos.c
index 49c7f7eb..2d8c1c18 100644
--- a/digital/asserv/src/asserv/pos.c
+++ b/digital/asserv/src/asserv/pos.c
@@ -99,10 +99,12 @@ pos_update (void)
int16_t pid_theta, pid_alpha;
int32_t diff_theta, diff_alpha;
/* Update current shaft positions. */
- if (!(state_main.variant & 1))
- pos_theta.cur += counter_left_diff + counter_right_diff;
- if (!(state_main.variant & 2))
- pos_alpha.cur += counter_right_diff - counter_left_diff;
+ pos_theta.cur += counter_left_diff + counter_right_diff;
+ pos_alpha.cur += counter_right_diff - counter_left_diff;
+ if (state_main.variant & 1)
+ pos_reset (&pos_theta);
+ if (state_main.variant & 2)
+ pos_reset (&pos_alpha);
/* Compute PID. */
diff_theta = pos_theta.cons - pos_theta.cur;
diff_alpha = pos_alpha.cons - pos_alpha.cur;