summaryrefslogtreecommitdiff
path: root/digital/asserv/src/asserv/pos.c
diff options
context:
space:
mode:
authorNicolas Schodet2008-04-20 19:17:07 +0200
committerNicolas Schodet2008-04-20 19:17:07 +0200
commitc4d20dd9ffa1c479de2858dd1b77ff014d1073dd (patch)
treeee30f90e46f60c15ab69514f6889671c134f745d /digital/asserv/src/asserv/pos.c
parent1d6b510b0394562c6e9d52990986b4ddbd0263c5 (diff)
* digital/asserv/src/asserv:
- added separate setting of position control for theta/alpha. - disable angular position control for go to the dispenser.
Diffstat (limited to 'digital/asserv/src/asserv/pos.c')
-rw-r--r--digital/asserv/src/asserv/pos.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/digital/asserv/src/asserv/pos.c b/digital/asserv/src/asserv/pos.c
index 02cde731..49c7f7eb 100644
--- a/digital/asserv/src/asserv/pos.c
+++ b/digital/asserv/src/asserv/pos.c
@@ -99,8 +99,10 @@ pos_update (void)
int16_t pid_theta, pid_alpha;
int32_t diff_theta, diff_alpha;
/* Update current shaft positions. */
- pos_theta.cur += counter_left_diff + counter_right_diff;
- pos_alpha.cur += counter_right_diff - counter_left_diff;
+ 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;
/* Compute PID. */
diff_theta = pos_theta.cons - pos_theta.cur;
diff_alpha = pos_alpha.cons - pos_alpha.cur;