cob detection
[aversive.git] / projects / microb2010 / mainboard / main.h
index 48655eb..c38a234 100755 (executable)
@@ -19,6 +19,8 @@
  *
  */
 
+/* was mechboard in 2009 */
+
 #define LED_TOGGLE(port, bit) do {             \
                if (port & _BV(bit))            \
                        port &= ~_BV(bit);      \
 #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)
 #define I2C_POLL_PRIO       20
 #define EEPROM_TIME_PRIO    10
 
-#define CS_PERIOD 5000L /* in microsecond */ 
+#define CS_PERIOD 5000L /* in microsecond */
 #define CS_HZ (1000000. / CS_PERIOD)
 
 #define NB_LOGS 4
@@ -168,6 +170,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 +196,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 +205,17 @@ 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;
 };
 
 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);