paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [5074] Added rx interrupt implementation, fixed some


From: Piotr Esden-Tempski
Subject: [paparazzi-commits] [5074] Added rx interrupt implementation, fixed some typos.
Date: Tue, 20 Jul 2010 07:19:07 +0000

Revision: 5074
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=5074
Author:   esden
Date:     2010-07-20 07:19:06 +0000 (Tue, 20 Jul 2010)
Log Message:
-----------
Added rx interrupt implementation, fixed some typos. Tested with two
lisas and they are blinking their receive led's happily.

Modified Paths:
--------------
    paparazzi3/trunk/conf/autopilot/lisa_test_progs.makefile
    paparazzi3/trunk/sw/airborne/lisa/test_csc_servo.c
    paparazzi3/trunk/sw/airborne/stm32/can_hw.c
    paparazzi3/trunk/sw/airborne/stm32/stm32_vector_table.c

Modified: paparazzi3/trunk/conf/autopilot/lisa_test_progs.makefile
===================================================================
--- paparazzi3/trunk/conf/autopilot/lisa_test_progs.makefile    2010-07-19 
15:57:53 UTC (rev 5073)
+++ paparazzi3/trunk/conf/autopilot/lisa_test_progs.makefile    2010-07-20 
07:19:06 UTC (rev 5074)
@@ -921,5 +921,5 @@
 #test_csc_servo.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC(1./512.)'
 test_csc_servo.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC(1./10.)'
 test_csc_servo.srcs += sys_time.c $(SRC_ARCH)/sys_time_hw.c
-test_csc_servo.CFLAGS += -DUSE_CAN1
+test_csc_servo.CFLAGS += -DUSE_CAN1 -DUSE_USB_LP_CAN1_RX0_IRQ
 test_csc_servo.srcs += can.c $(SRC_ARCH)/can_hw.c

Modified: paparazzi3/trunk/sw/airborne/lisa/test_csc_servo.c
===================================================================
--- paparazzi3/trunk/sw/airborne/lisa/test_csc_servo.c  2010-07-19 15:57:53 UTC 
(rev 5073)
+++ paparazzi3/trunk/sw/airborne/lisa/test_csc_servo.c  2010-07-20 07:19:06 UTC 
(rev 5074)
@@ -35,6 +35,11 @@
 int main(void) {
   main_init();
 
+  servos[0] = 1;
+  servos[1] = 2;
+  servos[2] = 3;
+  servos[3] = 4;
+
   while(1) {
          if (sys_time_periodic())
                  main_periodic_task();
@@ -51,15 +56,11 @@
 }
 
 static inline void main_periodic_task( void ) {
+       servos[0]++;
 
-       servos[0] = 1;
-       servos[1] = 2;
-       servos[2] = 3;
-       servos[3] = 4;
-
        can_transmit(1, 0, (uint8_t *)servos, 8);
 
-       LED_TOGGLE(2);
+       LED_TOGGLE(0);
 
        LED_PERIODIC();
 }

Modified: paparazzi3/trunk/sw/airborne/stm32/can_hw.c
===================================================================
--- paparazzi3/trunk/sw/airborne/stm32/can_hw.c 2010-07-19 15:57:53 UTC (rev 
5073)
+++ paparazzi3/trunk/sw/airborne/stm32/can_hw.c 2010-07-20 07:19:06 UTC (rev 
5074)
@@ -41,6 +41,7 @@
 #define GPIO_Pin_CAN_TX GPIO_Pin_12
 
 CanTxMsg can_tx_msg;
+CanRxMsg can_rx_msg;
 RCC_ClocksTypeDef rcc_clocks;
 
 void can_hw_init(void)
@@ -96,7 +97,7 @@
        can.CAN_SJW = CAN_SJW_1tq;
        can.CAN_BS1 = CAN_BS1_3tq;
        can.CAN_BS2 = CAN_BS2_5tq;
-       can.CAN_Prescaler = 4;
+       can.CAN_Prescaler = 11;
        CAN_Init(CAN1, &can);
 
        /* CAN filter init */
@@ -136,3 +137,30 @@
 
        return 0;
 }
+
+void usb_lp_can1_rx0_irq_handler(void)
+{
+       CAN_Receive(CAN1, CAN_FIFO0, &can_rx_msg);
+       //LED_TOGGLE(3);
+
+       if((can_rx_msg.Data[0] & 0x01) == 0x01){
+               LED_ON(4);
+       }else{
+               LED_OFF(4);
+       }
+       if((can_rx_msg.Data[0] & 0x02) == 0x02){
+               LED_ON(5);
+       }else{
+               LED_OFF(5);
+       }
+       if((can_rx_msg.Data[0] & 0x04) == 0x04){
+               LED_ON(6);
+       }else{
+               LED_OFF(6);
+       }
+       if((can_rx_msg.Data[0] & 0x08) == 0x08){
+               LED_ON(7);
+       }else{
+               LED_OFF(7);
+       }
+}

Modified: paparazzi3/trunk/sw/airborne/stm32/stm32_vector_table.c
===================================================================
--- paparazzi3/trunk/sw/airborne/stm32/stm32_vector_table.c     2010-07-19 
15:57:53 UTC (rev 5073)
+++ paparazzi3/trunk/sw/airborne/stm32/stm32_vector_table.c     2010-07-20 
07:19:06 UTC (rev 5074)
@@ -131,7 +131,7 @@
 
 #ifdef USE_USB_LP_CAN1_RX0_IRQ
 extern void usb_lp_can1_rx0_irq_handler(void);
-#define USB_LP_CAN1_RX0_IRQ_HANDLER usb_lp_can_rx0_irq_handler
+#define USB_LP_CAN1_RX0_IRQ_HANDLER usb_lp_can1_rx0_irq_handler
 #else
 #define USB_LP_CAN1_RX0_IRQ_HANDLER null_handler
 #endif




reply via email to

[Prev in Thread] Current Thread [Next in Thread]