paparazzi-commits
[Top][All Lists]
Advanced

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

[paparazzi-commits] [4216] Add PWM wind vane sensor support to CSC code


From: Allen Ibara
Subject: [paparazzi-commits] [4216] Add PWM wind vane sensor support to CSC code
Date: Thu, 01 Oct 2009 18:56:43 +0000

Revision: 4216
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=4216
Author:   aibara
Date:     2009-10-01 18:56:43 +0000 (Thu, 01 Oct 2009)
Log Message:
-----------
Add PWM wind vane sensor support to CSC code

Modified Paths:
--------------
    paparazzi3/trunk/sw/airborne/csc/csc_ap_link.c
    paparazzi3/trunk/sw/airborne/csc/csc_ap_link.h
    paparazzi3/trunk/sw/airborne/csc/csc_msg_def.h
    paparazzi3/trunk/sw/airborne/csc/mercury_csc_main.c

Modified: paparazzi3/trunk/sw/airborne/csc/csc_ap_link.c
===================================================================
--- paparazzi3/trunk/sw/airborne/csc/csc_ap_link.c      2009-10-01 18:56:02 UTC 
(rev 4215)
+++ paparazzi3/trunk/sw/airborne/csc/csc_ap_link.c      2009-10-01 18:56:43 UTC 
(rev 4216)
@@ -35,7 +35,17 @@
   csc_ap_send_msg(CSC_BOARD_STATUS_ID, (const uint8_t *) &msg, sizeof(msg));
 }
 
+void csc_ap_link_send_vane(float vane_angle)
+{
 
+  struct CscVaneMsg msg;
+
+  msg.vane_angle1 = vane_angle;
+
+  csc_ap_send_msg(CSC_VANE_MSG_ID, (const uint8_t *) &msg, sizeof(msg));
+}
+
+
 // Generic function for sending can messages
 void can_write_csc(uint8_t board_id, uint8_t msg_id, const uint8_t *buf, 
uint8_t len)
 {

Modified: paparazzi3/trunk/sw/airborne/csc/csc_ap_link.h
===================================================================
--- paparazzi3/trunk/sw/airborne/csc/csc_ap_link.h      2009-10-01 18:56:02 UTC 
(rev 4215)
+++ paparazzi3/trunk/sw/airborne/csc/csc_ap_link.h      2009-10-01 18:56:43 UTC 
(rev 4216)
@@ -14,6 +14,7 @@
 void can_write_csc(uint8_t board_id, uint8_t msg_id, const uint8_t *buf, 
uint8_t len);
 void csc_ap_link_send_status(uint32_t loops, uint32_t msgs);
 void csc_ap_link_send_adc(float adc1, float adc2);
+void csc_ap_link_send_vane(float vane_angle);
 void csc_ap_link_set_servo_cmd_cb(void (* cb)(struct CscServoCmd *cmd));
 void csc_ap_link_set_motor_cmd_cb(void (* cb)(struct CscMotorMsg *msg));
 void csc_ap_link_set_prop_cmd_cb(void (* cb)(struct CscPropCmd *cmd, int idx));

Modified: paparazzi3/trunk/sw/airborne/csc/csc_msg_def.h
===================================================================
--- paparazzi3/trunk/sw/airborne/csc/csc_msg_def.h      2009-10-01 18:56:02 UTC 
(rev 4215)
+++ paparazzi3/trunk/sw/airborne/csc/csc_msg_def.h      2009-10-01 18:56:43 UTC 
(rev 4216)
@@ -18,6 +18,7 @@
 #define CSC_GPS_POS_ID       8
 #define CSC_GPS_ACC_ID       9
 #define CSC_PROP2_CMD_ID       10
+#define CSC_VANE_MSG_ID       11
 
 
 /* Received from the autopilot */
@@ -73,6 +74,11 @@
   uint32_t sacc;
 } __attribute__((packed));
 
+struct CscVaneMsg {
+  float vane_angle1;
+  float vane_angle2;
+} __attribute__((packed));
+
 #define CSC_RC_SCALE 20
 #define CSC_RC_OFFSET 2*(MAX_PPRZ/CSC_RC_SCALE) /* Sorry this is a bit 
arbitrary. - mmt */
 

Modified: paparazzi3/trunk/sw/airborne/csc/mercury_csc_main.c
===================================================================
--- paparazzi3/trunk/sw/airborne/csc/mercury_csc_main.c 2009-10-01 18:56:02 UTC 
(rev 4215)
+++ paparazzi3/trunk/sw/airborne/csc/mercury_csc_main.c 2009-10-01 18:56:43 UTC 
(rev 4216)
@@ -31,6 +31,7 @@
 #include "init_hw.h"
 #include "sys_time.h"
 #include "led.h"
+#include "csc_vane.h"
 
 #ifdef USE_BUSS_TWI_BLMC_MOTOR
 #include "buss_twi_blmc_hw.h"
@@ -46,8 +47,8 @@
 #include "csc_telemetry.h"
 #include "periodic.h"
 #include "downlink.h"
+#include "pwm_input.h"
 
-
 #include "csc_adc.h"
 #include "csc_rc_spektrum.h"
 
@@ -87,12 +88,18 @@
   spektrum_init();
 #endif
 
+#ifdef USE_PWM_INPUT
+  pwm_input_init();
+#endif
+
   csc_ap_link_init();
   csc_ap_link_set_servo_cmd_cb(on_servo_cmd);
   csc_ap_link_set_motor_cmd_cb(on_motor_cmd);
   csc_ap_link_set_prop_cmd_cb(on_prop_cmd);
 
+#ifdef ADC
   csc_adc_init();
+#endif
 
   // be sure to call servos_init after uart1 init since they are sharing pins
   #ifdef USE_I2C0
@@ -115,6 +122,10 @@
   PeriodicSendAp_DefaultChannel();
   #endif
 
+  #ifdef USE_VANE_SENSOR
+  csc_vane_periodic();
+  #endif
+
   if (servo_cmd_timeout > SERVO_TIMEOUT) {
     csc_servos_set(zeros);
   } else {
@@ -124,10 +135,11 @@
   if ((++csc_loops % CSC_STATUS_TIMEOUT) == 0) {
     csc_ap_link_send_status(csc_loops, can_msg_count);
   }
+#ifdef ADC
   if ((++csc_loops % CSC_STATUS_TIMEOUT) == 0) {
     csc_adc_periodic();
   }
-
+#endif
 }
 
 static void csc_main_event( void ) {





reply via email to

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