X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Fmainboard%2Fmain.h;h=c248644f85e356ba22dff3c2f7e20fa6c7833ebc;hp=78fccc4685c1cdb2355407d213baf5c8c2bc9e1a;hb=09e0cfb842943982e9fa3c4792c097bf4be25360;hpb=5918edd6f4f713ef3c8b0b0020dd30a4fb8222ae diff --git a/projects/microb2010/mainboard/main.h b/projects/microb2010/mainboard/main.h index 78fccc4..c248644 100755 --- a/projects/microb2010/mainboard/main.h +++ b/projects/microb2010/mainboard/main.h @@ -66,14 +66,19 @@ #define IMP_COEF 10. #define DIST_IMP_MM (((IMP_ENCODERS*4) / WHEEL_PERIM_MM) * IMP_COEF) -#define LEFT_ENCODER ((void *)1) -#define RIGHT_ENCODER ((void *)0) +#define RIGHT_ENCODER ((void *)0) +#define LEFT_ENCODER ((void *)1) +#define LEFT_COBROLLER_ENCODER ((void *)2) +#define RIGHT_COBROLLER_ENCODER ((void *)3) -#define LEFT_PWM ((void *)&gen.pwm1_4A) -#define RIGHT_PWM ((void *)&gen.pwm2_4B) +#define RIGHT_PWM ((void *)&gen.pwm1_4A) +#define LEFT_PWM ((void *)&gen.pwm2_4B) +#define LEFT_COBROLLER_PWM ((void *)&gen.pwm3_1A) +#define RIGHT_COBROLLER_PWM ((void *)&gen.pwm4_1B) + +#define SUPPORT_BALLS_R_SERVO ((void *)&gen.servo2) +#define SUPPORT_BALLS_L_SERVO ((void *)&gen.servo3) -#define LEFT_PUMP1_PWM ((void *)&gen.pwm3_1A) -#define LEFT_PUMP2_PWM ((void *)&gen.pwm4_1B) /** ERROR NUMS */ #define E_USER_STRAT 194 @@ -110,7 +115,7 @@ struct genboard { struct pwm_ng servo2; struct pwm_ng servo3; struct pwm_ng servo4; - + /* ax12 interface */ AX12 ax12; @@ -142,6 +147,8 @@ struct mainboard { /* control systems */ struct cs_block angle; struct cs_block distance; + struct cs_block left_cobroller; + struct cs_block right_cobroller; /* x,y positionning */ struct robot_system rs; @@ -154,54 +161,28 @@ struct mainboard { volatile int16_t speed_d; /* current dist speed */ int32_t pwm_l; /* current left pwm */ int32_t pwm_r; /* current right pwm */ - uint8_t enable_pickup_wheels; /* these PWM are on sensorboard */ - }; -/* state of mechboard, synchronized through i2c */ -struct mechboard { - uint8_t mode; +/* state of cobboard, synchronized through i2c */ +struct cobboard { + uint8_t mode; uint8_t status; - int8_t lintel_count; - uint8_t column_flags; - - /* pwm */ - int16_t pump_left1; - int16_t pump_right1; - int16_t pump_left2; - int16_t pump_right2; - - /* currents (for left arm, we can just read it on adc) */ - int16_t pump_right1_current; - int16_t pump_right2_current; - - /* pwm for lintel servos */ - uint16_t servo_lintel_left; - uint16_t servo_lintel_right; + int16_t left_cobroller_speed; + int16_t right_cobroller_speed; + uint8_t cob_count; }; -/* state of sensorboard, synchronized through i2c */ -struct sensorboard { +/* state of ballboard, synchronized through i2c */ +struct ballboard { + uint8_t mode; uint8_t status; - /* opponent pos */ - int16_t opponent_x; - int16_t opponent_y; - int16_t opponent_a; - int16_t opponent_d; - - /* scanner */ -#define I2C_SCAN_DONE 1 - uint8_t scan_status; -#define I2C_COLUMN_NO_DROPZONE -1 - int8_t dropzone_h; - int16_t dropzone_x; - int16_t dropzone_y; + uint8_t ball_count; }; extern struct genboard gen; extern struct mainboard mainboard; -extern struct mechboard mechboard; -extern struct sensorboard sensorboard; +extern struct cobboard cobboard; +extern struct ballboard ballboard; /* start the bootloader */ void bootloader(void);