X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Fcobboard%2Fshovel.c;h=e06638d1d060a60147be0ef1acabcae551fd9bef;hp=42f734cd61ba1c589d8c579494bcf476aa987d31;hb=04f1061f2c5959ce87f632591576097f540dfc14;hpb=d6922ca35b126696fc34cfb7714acfa14edd1c4a diff --git a/projects/microb2010/cobboard/shovel.c b/projects/microb2010/cobboard/shovel.c index 42f734c..e06638d 100644 --- a/projects/microb2010/cobboard/shovel.c +++ b/projects/microb2010/cobboard/shovel.c @@ -45,8 +45,9 @@ #define SHOVEL_DOWN 100 #define SHOVEL_MID 4500 -#define SHOVEL_UP 11000 -#define SHOVEL_KICKSTAND 12800 +#define SHOVEL_UP 11300 +#define SHOVEL_KICKSTAND_UP 13400 +#define SHOVEL_KICKSTAND_DOWN 10400 static int32_t shovel_k1 = 1000; static int32_t shovel_k2 = 20; @@ -121,6 +122,7 @@ void shovel_set(void *mot, int32_t cmd) void shovel_down(void) { + shovel_current_limit_enable(0); 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); @@ -128,6 +130,7 @@ void shovel_down(void) void shovel_mid(void) { + shovel_current_limit_enable(0); 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); @@ -135,19 +138,31 @@ void shovel_mid(void) void shovel_up(void) { + shovel_current_limit_enable(0); if (state_get_cob_count() <= 1) - quadramp_set_1st_order_vars(&cobboard.shovel.qr, 1000, 2500); + quadramp_set_1st_order_vars(&cobboard.shovel.qr, 700, 2500); else - quadramp_set_1st_order_vars(&cobboard.shovel.qr, 2000, 2500); + quadramp_set_1st_order_vars(&cobboard.shovel.qr, 1000, 2500); quadramp_set_2nd_order_vars(&cobboard.shovel.qr, 80, 15); cs_set_consign(&cobboard.shovel.cs, SHOVEL_UP); } -void shovel_kickstand(void) +void shovel_kickstand_up(void) +{ + shovel_set_current_limit_coefs(1000, 20); + shovel_current_limit_enable(1); + quadramp_set_1st_order_vars(&cobboard.shovel.qr, 200, 200); + quadramp_set_2nd_order_vars(&cobboard.shovel.qr, 10, 10); + cs_set_consign(&cobboard.shovel.cs, SHOVEL_KICKSTAND_UP); +} + +void shovel_kickstand_down(void) { + shovel_set_current_limit_coefs(500, 0); + shovel_current_limit_enable(1); quadramp_set_1st_order_vars(&cobboard.shovel.qr, 200, 200); quadramp_set_2nd_order_vars(&cobboard.shovel.qr, 10, 10); - cs_set_consign(&cobboard.shovel.cs, SHOVEL_KICKSTAND); + cs_set_consign(&cobboard.shovel.cs, SHOVEL_KICKSTAND_DOWN); } uint8_t shovel_is_up(void) @@ -160,6 +175,11 @@ uint8_t shovel_is_down(void) return shovel_is_at_pos(SHOVEL_DOWN); } +uint8_t shovel_is_mid(void) +{ + return shovel_is_at_pos(SHOVEL_MID); +} + void shovel_init(void) { shovel_autopos();