X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Fmainboard%2Fmain.h;h=2fe71997a0264a5085d31fe40351235db195ea73;hp=48655eb0024f9263e9caa0741c9ac10cb270682c;hb=HEAD;hpb=fa8546ea39c7442ad3bf5a822a72a2b50a41045d diff --git a/projects/microb2010/mainboard/main.h b/projects/microb2010/mainboard/main.h index 48655eb..2fe7199 100755 --- a/projects/microb2010/mainboard/main.h +++ b/projects/microb2010/mainboard/main.h @@ -19,6 +19,8 @@ * */ +/* was sensorboard in 2009 */ + #define LED_TOGGLE(port, bit) do { \ if (port & _BV(bit)) \ port &= ~_BV(bit); \ @@ -53,13 +55,13 @@ #define LED1_OFF() cbi(PORTJ, 2) #define LED1_TOGGLE() LED_TOGGLE(PORTJ, 2) -#define LED2_ON() sbi(PORTL, 7) -#define LED2_OFF() cbi(PORTL, 7) -#define LED2_TOGGLE() LED_TOGGLE(PORTL, 7) +#define LED2_ON() sbi(PORTJ, 3) +#define LED2_OFF() cbi(PORTJ, 3) +#define LED2_TOGGLE() LED_TOGGLE(PORTJ, 3) -#define LED3_ON() sbi(PORTJ, 3) -#define LED3_OFF() cbi(PORTJ, 3) -#define LED3_TOGGLE() LED_TOGGLE(PORTJ, 3) +#define LED3_ON() sbi(PORTL, 7) +#define LED3_OFF() cbi(PORTL, 7) +#define LED3_TOGGLE() LED_TOGGLE(PORTL, 7) #define LED4_ON() sbi(PORTL, 6) #define LED4_OFF() cbi(PORTL, 6) @@ -81,11 +83,17 @@ #define ROBOT_HALF_LENGTH_REAR 120 #define ROBOT_WIDTH 320 +#ifdef HOST_VERSION +#define ROBOT_ANGLE_FRONT 0. +#else +#define ROBOT_ANGLE_FRONT 0.75 // 0.27 +#endif + /* it is a 1024 imps -> 4096 because we see 1/4 period * and diameter: 55mm -> perimeter 134mm * dist_imp_mm = 4096/134 x 10 -> 304 */ /* increase it to go further */ -#define IMP_ENCODERS 1024 +#define IMP_ENCODERS 1000 #define WHEEL_DIAMETER_MM 42.9 #define WHEEL_PERIM_MM (WHEEL_DIAMETER_MM * M_PI) #define IMP_COEF 10. @@ -117,9 +125,10 @@ #define CS_PRIO 100 #define STRAT_PRIO 30 #define I2C_POLL_PRIO 20 +#define BEACON_PRIO 15 #define EEPROM_TIME_PRIO 10 -#define CS_PERIOD 5000L /* in microsecond */ +#define CS_PERIOD ((5000L/SCHEDULER_UNIT)*SCHEDULER_UNIT) /* in microsecond */ #define CS_HZ (1000000. / CS_PERIOD) #define NB_LOGS 4 @@ -168,6 +177,7 @@ struct mainboard { #define DO_BD 16 #define DO_TIMER 32 #define DO_POWER 64 +#define DO_ERRBLOCKING 128 uint8_t flags; /* misc flags */ /* control systems */ @@ -193,6 +203,8 @@ struct mainboard { struct cobboard { uint8_t mode; uint8_t status; + uint8_t lspickle; + uint8_t rspickle; int16_t left_cobroller_speed; int16_t right_cobroller_speed; uint8_t cob_count; @@ -200,15 +212,21 @@ struct cobboard { /* state of ballboard, synchronized through i2c */ struct ballboard { - uint8_t mode; + volatile uint8_t mode; uint8_t status; uint8_t ball_count; + uint8_t lcob; + uint8_t rcob; + int16_t opponent_x; + int16_t opponent_y; + int16_t opponent_a; + int16_t opponent_d; }; extern struct genboard gen; extern struct mainboard mainboard; -extern struct cobboard cobboard; -extern struct ballboard ballboard; +extern volatile struct cobboard cobboard; +extern volatile struct ballboard ballboard; /* start the bootloader */ void bootloader(void);