X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Fmainboard%2Fstrat_corn.c;h=8abef5bec7fed22cd8c3c191c53d9b399a52714b;hp=77c9a51904e002ed48d23d9a21b76958ec02e09d;hb=HEAD;hpb=8933c04126fa2885cdcc255271632bd4a5a51afe diff --git a/projects/microb2010/mainboard/strat_corn.c b/projects/microb2010/mainboard/strat_corn.c index 77c9a51..8abef5b 100644 --- a/projects/microb2010/mainboard/strat_corn.c +++ b/projects/microb2010/mainboard/strat_corn.c @@ -70,7 +70,8 @@ static volatile uint8_t clitoid_slow = 0; /* return 1 if there is a corn near, and fill the index ptr */ -int8_t corn_is_near(uint8_t *corn_idx, uint8_t side) +int8_t corn_is_near(uint8_t *corn_idx, uint8_t side, + int16_t *xspickle, int16_t *yspickle) { /* XXX to be checked */ #define SENSOR_CORN_DIST 225 @@ -92,6 +93,8 @@ int8_t corn_is_near(uint8_t *corn_idx, uint8_t side) } x_corn_int = x_corn; y_corn_int = y_corn; + *xspickle = x_corn_int; + *yspickle = y_corn_int; wp = xycoord_to_corn_idx(&x_corn_int, &y_corn_int); if (wp == NULL) @@ -162,7 +165,7 @@ static uint8_t clitoid_select_speed(uint8_t num1, uint8_t dir1, if (get_cob_count() >= 5) return 0; /* fast */ - if (xycoord_to_ijcoord(&x, &y, &i, &j) < 0) { + if (xycoord_to_ijcoord_not_corn(&x, &y, &i, &j) < 0) { DEBUG(E_USER_STRAT, "%s(): cannot find waypoint at %d,%d", __FUNCTION__, x, y); return 1; @@ -171,10 +174,12 @@ static uint8_t clitoid_select_speed(uint8_t num1, uint8_t dir1, if (corn_count_neigh(i, j) == 2) return 1; - /* we are on intersection, let's go slow... but as we enter in - * the curve-part of the clitoid, we should not go there */ + + /* we are on intersection, keep the same speed... but as we + * enter in the curve-part of the clitoid, we should not go + * there */ if (wp_belongs_to_line(i, j, num2, dir2)) - return 0; + return clitoid_slow; /* we can ge fast if it's a 60deg angle and if we checked the * current point */ @@ -298,7 +303,7 @@ static int8_t strat_calc_clitoid(uint8_t num1, uint8_t dir1, } else { beta_deg = 0; - *pack_spickles = I2C_RIGHT_SIDE; + *pack_spickles = I2C_LEFT_SIDE; } } /* double 90 deg for half turn -- not used */