shovel speed and carry servo optim
[aversive.git] / projects / microb2010 / cobboard / shovel.c
index abf0c42..b2a8cc0 100644 (file)
 #include <rdline.h>
 
 #include "main.h"
+#include "state.h"
 #include "shovel.h"
 
 #define SHOVEL_DOWN 100
-#define SHOVEL_MID  4900
-#define SHOVEL_UP   10000
+#define SHOVEL_MID  4500
+#define SHOVEL_UP   11000
 
 /* init spickle position at beginning */
 static void shovel_autopos(void)
@@ -70,19 +71,25 @@ static uint8_t shovel_is_at_pos(int32_t pos)
 
 void shovel_down(void)
 {
+       quadramp_set_1st_order_vars(&cobboard.shovel.qr, 2500, 2500);
        quadramp_set_2nd_order_vars(&cobboard.shovel.qr, 50, 80);
        cs_set_consign(&cobboard.shovel.cs, SHOVEL_DOWN);
 }
 
 void shovel_mid(void)
 {
+       quadramp_set_1st_order_vars(&cobboard.shovel.qr, 2500, 2500);
        quadramp_set_2nd_order_vars(&cobboard.shovel.qr, 80, 80);
        cs_set_consign(&cobboard.shovel.cs, SHOVEL_MID);
 }
 
 void shovel_up(void)
 {
-       quadramp_set_2nd_order_vars(&cobboard.shovel.qr, 80, 20);
+       if (state_get_cob_count() <= 1)
+               quadramp_set_1st_order_vars(&cobboard.shovel.qr, 1000, 2500);
+       else
+               quadramp_set_1st_order_vars(&cobboard.shovel.qr, 2000, 2500);
+       quadramp_set_2nd_order_vars(&cobboard.shovel.qr, 80, 15);
        cs_set_consign(&cobboard.shovel.cs, SHOVEL_UP);
 }