From: Olivier Matz Date: Wed, 25 Sep 2013 20:16:32 +0000 (+0200) Subject: xbee & spi ok, only ping is not working X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=commitdiff_plain;h=a4e51d8b2a5b13308d314aaf72e58672346dfb1f xbee & spi ok, only ping is not working --- diff --git a/cmdline.c b/cmdline.c index 9f4129e..5745b9c 100644 --- a/cmdline.c +++ b/cmdline.c @@ -128,8 +128,10 @@ void emergency(char c) i++; else if ( !(i == 1 && c == 'p') ) i = 0; - if (i == 3) - bootloader(); + if (i == 3) { + //bootloader(); + reset(); + } } /* log function, add a command to configure diff --git a/cmdline.h b/cmdline.h index 724f5ef..3b8bf50 100644 --- a/cmdline.h +++ b/cmdline.h @@ -21,8 +21,8 @@ */ -#define CMDLINE_UART 0 -#define XBEE_UART 2 +#define CMDLINE_UART 1 +#define XBEE_UART 0 void cmdline_init(void); diff --git a/main.c b/main.c index 2120a62..1557c69 100644 --- a/main.c +++ b/main.c @@ -25,6 +25,10 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* fuses: + * avrdude -p atmega1284p -P usb -c avrispmkii -U lfuse:w:0xff:m -U hfuse:w:0x99:m -U efuse:w:0xff:m + */ + #include #include #include @@ -584,23 +588,15 @@ static uint16_t get_time_ms(void) return global_ms; } -static void do_led_blink(struct callout_manager *cm, - struct callout *clt, void *dummy) -{ - static uint8_t a = 0; - - (void)cm; - (void)clt; - (void)dummy; - - /* XXX */ - a++; -} - static void increment_ms(void *dummy) { (void)dummy; global_ms++; + + if (global_ms & 0x80) + LED1_ON(); + else + LED1_OFF(); } static void main_timer_interrupt(void) @@ -617,11 +613,17 @@ static void main_timer_interrupt(void) */ int main(void) { - struct callout t1; + //struct callout t1; FILE *xbee_file; int8_t err; struct xbee_dev dev; + DDRA = 0x07; /* LEDs */ + LED2_ON(); + wait_ms(1000); + LED3_ON(); + wait_ms(1000); + uart_init(); uart_register_rx_event(CMDLINE_UART, emergency); @@ -641,7 +643,7 @@ int main(void) rdline_newline(&xbeeboard.rdl, xbeeboard.prompt); callout_manager_init(&cm, get_time_ms); - callout_reset(&cm, &t1, 500, PERIODICAL, do_led_blink, NULL); + //callout_reset(&cm, &t1, 500, PERIODICAL, do_led_blink, NULL); /* initialize libxbee */ err = xbee_init(); @@ -662,6 +664,7 @@ int main(void) } sei(); + xbee_mainloop(); return 0; } diff --git a/main.h b/main.h index 4ed5259..617628e 100644 --- a/main.h +++ b/main.h @@ -30,17 +30,14 @@ /** ERROR NUMS */ #define E_USER_DEFAULT 194 -#define LED1_ON() sbi(PORTE, 2) -#define LED1_OFF() cbi(PORTE, 2) +#define LED1_ON() sbi(PORTA, 2) +#define LED1_OFF() cbi(PORTA, 2) -#define LED2_ON() sbi(PORTE, 3) -#define LED2_OFF() cbi(PORTE, 3) +#define LED2_ON() sbi(PORTA, 1) +#define LED2_OFF() cbi(PORTA, 1) -#define LED3_ON() sbi(PORTB, 3) -#define LED3_OFF() cbi(PORTB, 3) - -#define LED4_ON() sbi(PORTB, 4) -#define LED4_OFF() cbi(PORTB, 4) +#define LED3_ON() sbi(PORTA, 0) +#define LED3_OFF() cbi(PORTA, 0) #define LED_PRIO 170 #define TIME_PRIO 160