X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=blobdiff_plain;f=main.c;h=aded3128ed26a3fdecaae993016e70fd51b15e73;hp=326ce64930ee66be51ad0e79e915e940ef4a43f9;hb=HEAD;hpb=1032fc9a27fbe5b24f3a837685467d87380b3e2c diff --git a/main.c b/main.c index 326ce64..aded312 100644 --- a/main.c +++ b/main.c @@ -27,6 +27,7 @@ /* fuses: * avrdude -p atmega1284p -P usb -c avrispmkii -U lfuse:w:0xff:m -U hfuse:w:0x91:m -U efuse:w:0xff:m + * -> it failed but I answered y, then make reset and it was ok */ #include @@ -49,10 +50,13 @@ #include #include #include +#include +#include "../fpv-common/i2c_commands.h" #include "eeprom_config.h" #include "beep.h" #include "xbee_user.h" +#include "i2c_protocol.h" #include "main.h" struct xbeeboard xbeeboard; @@ -89,9 +93,14 @@ void bootloader(void) } /* return time in milliseconds on unsigned 16 bits */ -static uint16_t get_time_ms(void) +uint16_t get_time_ms(void) { - return (uint16_t)global_ms; + uint16_t ms; + uint8_t flags; + IRQ_LOCK(flags); + ms = global_ms; + IRQ_UNLOCK(flags); + return ms; } static void main_timer_interrupt(void) @@ -152,9 +161,21 @@ int main(void) timer0_register_OV_intr(main_timer_interrupt); callout_mgr_init(&xbeeboard.intr_cm, get_time_ms); - callout_mgr_init(&xbeeboard.mainloop_cm, get_time_ms); cmdline_init(); + /* LOGS */ + error_register_emerg(mylog); + error_register_error(mylog); + error_register_warning(mylog); + error_register_notice(mylog); + error_register_debug(mylog); + + /* I2C */ + i2c_init(I2C_MODE_MASTER, I2C_MAINBOARD_ADDR); + i2c_protocol_init(); + i2c_register_recv_event(i2c_recvevent); + i2c_register_send_event(i2c_sendevent); + spi_servo_init(); beep_init(); @@ -178,6 +199,8 @@ int main(void) xbeeapp_init(); + rc_proto_init(); + sei(); eeprom_load_config();