strat db
[aversive.git] / projects / microb2010 / mainboard / main.c
index 4061d19..14a2aad 100755 (executable)
@@ -67,6 +67,7 @@
 #include "actuator.h"
 #include "cs.h"
 #include "strat_base.h"
 #include "actuator.h"
 #include "cs.h"
 #include "strat_base.h"
+#include "strat_db.h"
 #include "i2c_protocol.h"
 
 /* 0 means "programmed"
 #include "i2c_protocol.h"
 
 /* 0 means "programmed"
@@ -83,8 +84,8 @@
 
 struct genboard gen;
 struct mainboard mainboard;
 
 struct genboard gen;
 struct mainboard mainboard;
-struct cobboard cobboard;
-struct ballboard ballboard;
+volatile struct cobboard cobboard;
+volatile struct ballboard ballboard;
 
 #ifndef HOST_VERSION
 /***********************/
 
 #ifndef HOST_VERSION
 /***********************/
@@ -133,9 +134,21 @@ void do_time_monitor(void *dummy)
 
 void do_led_blink(void *dummy)
 {
 
 void do_led_blink(void *dummy)
 {
-#if 1 /* simple blink */
-       LED1_TOGGLE();
-#endif
+       static uint8_t a = 0;
+
+       if (mainboard.flags & DO_ERRBLOCKING) {
+               if (a & 1)
+                       LED1_ON();
+               else
+                       LED1_OFF();
+       }
+       else {
+               if (a & 4)
+                       LED1_ON();
+               else
+                       LED1_OFF();
+       }
+       a++;
 }
 
 static void main_timer_interrupt(void)
 }
 
 static void main_timer_interrupt(void)
@@ -171,7 +184,7 @@ int main(void)
        memset(&gen, 0, sizeof(gen));
        memset(&mainboard, 0, sizeof(mainboard));
        mainboard.flags = DO_ENCODERS | DO_CS | DO_RS |
        memset(&gen, 0, sizeof(gen));
        memset(&mainboard, 0, sizeof(mainboard));
        mainboard.flags = DO_ENCODERS | DO_CS | DO_RS |
-               DO_POS | DO_POWER | DO_BD;
+               DO_POS | DO_POWER | DO_BD | DO_ERRBLOCKING;
 
        /* UART */
        uart_init();
 
        /* UART */
        uart_init();
@@ -262,13 +275,13 @@ int main(void)
        /* all cs management */
        microb_cs_init();
 
        /* all cs management */
        microb_cs_init();
 
+       /* TIME */
+       time_init(TIME_PRIO);
+
 #ifndef HOST_VERSION
        /* sensors, will also init hardware adc */
        sensor_init();
 
 #ifndef HOST_VERSION
        /* sensors, will also init hardware adc */
        sensor_init();
 
-       /* TIME */
-       time_init(TIME_PRIO);
-
        /* start i2c slave polling */
        scheduler_add_periodical_event_priority(i2c_poll_slaves, NULL,
                                                8000L / SCHEDULER_UNIT, I2C_POLL_PRIO);
        /* start i2c slave polling */
        scheduler_add_periodical_event_priority(i2c_poll_slaves, NULL,
                                                8000L / SCHEDULER_UNIT, I2C_POLL_PRIO);
@@ -277,11 +290,11 @@ int main(void)
        /* strat */
        gen.logs[0] = E_USER_STRAT;
        gen.log_level = 5;
        /* strat */
        gen.logs[0] = E_USER_STRAT;
        gen.log_level = 5;
-       strat_reset_infos();
+       strat_db_init();
 
        /* strat-related event */
        scheduler_add_periodical_event_priority(strat_event, NULL,
 
        /* strat-related event */
        scheduler_add_periodical_event_priority(strat_event, NULL,
-                                               25000L / SCHEDULER_UNIT,
+                                               10000L / SCHEDULER_UNIT,
                                                STRAT_PRIO);
 
 #ifndef HOST_VERSION
                                                STRAT_PRIO);
 
 #ifndef HOST_VERSION
@@ -304,7 +317,7 @@ int main(void)
 #endif
 
 #ifdef HOST_VERSION
 #endif
 
 #ifdef HOST_VERSION
-       strat_reset_pos(1000, 1000, -90);
+       strat_reset_pos(400, COLOR_Y(400), COLOR_A(-90));
 #endif
 
        cmdline_interact();
 #endif
 
        cmdline_interact();