X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Fcobboard%2Fspickle.c;h=7296d8e28afec304687f90e0a37eac19c00944b5;hp=dcee12570c6a73d5d014509d213d1ac3ec04e0b5;hb=aa68be2d5d596693bda1109e4ccd6489f613b4f7;hpb=b022f257a5ee568737e1a684a83d0154397fffcb diff --git a/projects/microb2010/cobboard/spickle.c b/projects/microb2010/cobboard/spickle.c index dcee125..7296d8e 100644 --- a/projects/microb2010/cobboard/spickle.c +++ b/projects/microb2010/cobboard/spickle.c @@ -67,16 +67,16 @@ static struct spickle_params spickle = { &cobboard.right_spickle, }, .pos_deployed = { - 0, /* left */ - 0, /* right */ + 7000, // 200, /* left */ + 7000, // 200, /* right */ }, .pos_mid = { 25000, /* left */ 26000, /* right */ }, .pos_packed = { - 53000, /* left */ - 54500, /* right */ + 55800, /* left */ + 55800, /* right */ }, }; @@ -137,7 +137,6 @@ void spickle_set_coefs(uint32_t k1, uint32_t k2) spickle.k2 = k2; } - void spickle_set_pos(uint8_t side, int32_t pos_packed, int32_t pos_mid, int32_t pos_deployed) { @@ -159,6 +158,32 @@ void spickle_dump_params(void) spickle.pos_deployed[I2C_RIGHT_SIDE]); } +static uint8_t spickle_is_at_pos(uint8_t side, int32_t pos) +{ + int32_t diff; + int32_t enc; + if (side == I2C_LEFT_SIDE) + enc = encoders_spi_get_value(LEFT_SPICKLE_ENCODER); + else + enc = encoders_spi_get_value(RIGHT_SPICKLE_ENCODER); + diff = pos - enc; + if (diff < 0) + diff = -diff; + if (diff < 500) + return 1; + return 0; +} + +uint8_t spickle_is_packed(uint8_t side) +{ + return spickle_is_at_pos(side, spickle.pos_packed[side]); +} + +uint8_t spickle_is_deployed(uint8_t side) +{ + return spickle_is_at_pos(side, spickle.pos_deployed[side]); +} + void spickle_deploy(uint8_t side) { cs_set_consign(&spickle.csb[side]->cs, spickle.pos_deployed[side]);