]> git.droids-corp.org - protos/xbee-avr.git/commitdiff
xbee & spi ok, only ping is not working
authorOlivier Matz <zer0@droids-corp.org>
Wed, 25 Sep 2013 20:16:32 +0000 (22:16 +0200)
committerOlivier Matz <zer0@droids-corp.org>
Wed, 25 Sep 2013 20:16:32 +0000 (22:16 +0200)
cmdline.c
cmdline.h
main.c
main.h

index 9f4129efa60cd374a9c5d61366622fed268ce2b9..5745b9c60aabe01efa29f8ab2470d81b59e00d14 100644 (file)
--- 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
index 724f5ef9792d0bfbf2ff968e053f6a39259e007a..3b8bf50fbd845c8a6aa9b9cf98cc70291672ae8c 100644 (file)
--- 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 2120a62451643efd35dcccad963c6468f79dcffe..1557c693d867086e3f5e65d8a86d006a8d15a72f 100644 (file)
--- a/main.c
+++ b/main.c
  * 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 <aversive.h>
 #include <aversive/queue.h>
 #include <aversive/endian.h>
@@ -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 4ed5259d85bac22aa1612f23ab51e925434a585e..617628e922ac47f1659a15dbc24f620bf25683a0 100644 (file)
--- a/main.h
+++ b/main.h
 /** 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