X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Fballboard%2Fmain.c;h=725a89dc8d3432cac0037bee79a33945519fe06a;hp=963336865661db443eb9305d98778e0a6e72ef75;hb=99c22f682c6ddb6d0bcf657ec30aae226d3240f5;hpb=c8bae2eb9f3084d53436bc6c9fee9952dfcc1fda diff --git a/projects/microb2010/ballboard/main.c b/projects/microb2010/ballboard/main.c index 9633368..725a89d 100755 --- a/projects/microb2010/ballboard/main.c +++ b/projects/microb2010/ballboard/main.c @@ -58,6 +58,7 @@ #include "actuator.h" #include "cs.h" #include "i2c_protocol.h" +#include "state.h" /* 0 means "programmed" * ---- with 16 Mhz quartz @@ -112,16 +113,21 @@ void bootloader(void) void do_led_blink(__attribute__((unused)) void *dummy) { -#if 1 /* simple blink */ - static uint8_t a=0; + static uint8_t a = 0; - if(a) - LED1_ON(); - else - LED1_OFF(); - - a = !a; -#endif + if (ballboard.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) @@ -149,7 +155,8 @@ int main(void) LED1_OFF(); memset(&gen, 0, sizeof(gen)); memset(&ballboard, 0, sizeof(ballboard)); - ballboard.flags = DO_ENCODERS | DO_CS | DO_POWER; // DO_BD + ballboard.flags = DO_ENCODERS | DO_CS | DO_POWER | + DO_ERRBLOCKING | DO_BD; /* UART */ uart_init(); @@ -197,8 +204,7 @@ int main(void) PWM_NG_TIMER_16BITS_INIT(4, TIMER_16_MODE_PWM_10, TIMER4_PRESCALER_DIV_1); - PWM_NG_INIT16(&gen.pwm1_4A, 4, A, 10, PWM_NG_MODE_SIGNED | - PWM_NG_MODE_SIGN_INVERTED, + PWM_NG_INIT16(&gen.pwm1_4A, 4, A, 10, PWM_NG_MODE_SIGNED, &PORTD, 4); PWM_NG_INIT16(&gen.pwm2_4B, 4, B, 10, PWM_NG_MODE_SIGNED, &PORTD, 5); @@ -240,10 +246,15 @@ int main(void) /* ax12 */ ax12_user_init(); + gen.logs[0] = E_USER_ST_MACH; + gen.log_level = 5; + sei(); printf_P(PSTR("\r\n")); printf_P(PSTR("Dass das Gluck deinen Haus setzt.\r\n")); + + state_machine(); cmdline_interact(); return 0;