typo
[aversive.git] / projects / microb2010 / cobboard / main.h
index 33fb833..d539a46 100755 (executable)
@@ -1,6 +1,6 @@
-/*  
+/*
  *  Copyright Droids Corporation (2009)
- * 
+ *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  the Free Software Foundation; either version 2 of the License, or
@@ -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 LEFT_SPICKLE_ENCODER   ((void *)0)
 #define RIGHT_SPICKLE_ENCODER  ((void *)1)
-#define SHOVEL_ENCODER         ((void *)1)
+#define SHOVEL_ENCODER         ((void *)2)
+
+#define SERVO_DOOR_PWM         ((void *)&gen.servo2)
+#define SERVO_CARRY_L_PWM      ((void *)&gen.servo1)
+#define SERVO_CARRY_R_PWM      ((void *)&gen.servo3)
 
 #define LEFT_SPICKLE_PWM       ((void *)&gen.pwm1_4A)
 #define RIGHT_SPICKLE_PWM      ((void *)&gen.pwm2_4B)
-#define SHOVEL_PWM             ((void *)&gen.pwm2_4B)
+#define SHOVEL_PWM             ((void *)&gen.pwm3_1A)
 
 /** ERROR NUMS */
 #define E_USER_I2C_PROTO       195
@@ -64,6 +70,7 @@
 
 #define LED_PRIO           170
 #define TIME_PRIO          160
+#define SPICKLE_PRIO       130
 #define ADC_PRIO           120
 #define CS_PRIO            100
 #define I2C_POLL_PRIO       20
@@ -89,7 +96,7 @@ struct genboard {
        struct pwm_ng servo2;
        struct pwm_ng servo3;
        struct pwm_ng servo4;
-       
+
        /* ax12 interface */
        AX12 ax12;
 
@@ -101,6 +108,7 @@ struct genboard {
 
 struct cs_block {
        uint8_t on;
+       int32_t prev;
         struct cs cs;
         struct pid_filter pid;
        struct quadramp_filter qr;
@@ -113,6 +121,7 @@ struct cobboard {
 #define DO_CS        2
 #define DO_BD        4
 #define DO_POWER     8
+#define DO_ERRBLOCKING 16
        uint8_t flags;                /* misc flags */
 
        /* control systems */
@@ -124,6 +133,10 @@ struct cobboard {
        uint8_t our_color;
        volatile uint8_t cob_count;
        volatile uint8_t status;
+
+       /* synchronized to mainboard */
+       int16_t left_cobroller_speed;
+       int16_t right_cobroller_speed;
 };
 
 extern struct genboard gen;