paparazzi-commits
[Top][All Lists]
Advanced

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

[paparazzi-commits] [5792] updated test_aspirin test program


From: antoine drouin
Subject: [paparazzi-commits] [5792] updated test_aspirin test program
Date: Thu, 02 Sep 2010 21:33:48 +0000

Revision: 5792
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=5792
Author:   poine
Date:     2010-09-02 21:33:47 +0000 (Thu, 02 Sep 2010)
Log Message:
-----------
updated test_aspirin test program

Modified Paths:
--------------
    paparazzi3/trunk/conf/airframes/Poine/booz2_a7.xml
    paparazzi3/trunk/conf/autopilot/lisa_l_test_progs.makefile
    paparazzi3/trunk/sw/airborne/booz/arch/stm32/imu/booz_imu_aspirin_arch.c
    paparazzi3/trunk/sw/airborne/booz/arch/stm32/imu/booz_imu_aspirin_arch.h
    paparazzi3/trunk/sw/airborne/booz/imu/booz_imu_aspirin.c
    paparazzi3/trunk/sw/airborne/booz/imu/booz_imu_aspirin.h
    paparazzi3/trunk/sw/airborne/lisa/test/lisa_test_aspirin.c
    paparazzi3/trunk/sw/airborne/lisa/test/lisa_test_hmc5843.c
    paparazzi3/trunk/sw/airborne/stm32/i2c_hw.c

Modified: paparazzi3/trunk/conf/airframes/Poine/booz2_a7.xml
===================================================================
--- paparazzi3/trunk/conf/airframes/Poine/booz2_a7.xml  2010-09-02 19:32:17 UTC 
(rev 5791)
+++ paparazzi3/trunk/conf/airframes/Poine/booz2_a7.xml  2010-09-02 21:33:47 UTC 
(rev 5792)
@@ -205,6 +205,7 @@
     <target name="test_telemetry"   board="lisa_l_1.0"/>
     <target name="test_baro"        board="lisa_l_1.0"/>
     <target name="test_imu_b2"      board="lisa_l_1.0"/>
+    <target name="test_imu_aspirin" board="lisa_l_1.0"/>
     <target name="test_rc_spektrum" board="lisa_l_1.0"/>
     <target name="test_rc_ppm"      board="lisa_l_1.0"/>
     <target name="test_adc"         board="lisa_l_1.0"/>

Modified: paparazzi3/trunk/conf/autopilot/lisa_l_test_progs.makefile
===================================================================
--- paparazzi3/trunk/conf/autopilot/lisa_l_test_progs.makefile  2010-09-02 
19:32:17 UTC (rev 5791)
+++ paparazzi3/trunk/conf/autopilot/lisa_l_test_progs.makefile  2010-09-02 
21:33:47 UTC (rev 5792)
@@ -277,7 +277,55 @@
 test_imu_b2.srcs += $(SRC_BOOZ)/peripherals/booz_ms2001.c  
$(SRC_BOOZ_ARCH)/peripherals/booz_ms2001_arch.c
 
 
+
 #
+# test IMU aspirin
+#
+test_imu_aspirin.ARCHDIR = $(ARCHI)
+test_imu_aspirin.TARGET = test_imu_aspirin
+test_imu_aspirin.TARGETDIR = test_imu_aspirin
+test_imu_aspirin.CFLAGS  =  -I$(SRC_LISA) -I$(ARCHI) -I$(SRC_BOOZ) 
-I$(SRC_BOOZ_ARCH) -DPERIPHERALS_AUTO_INIT
+test_imu_aspirin.CFLAGS +=  -DBOARD_CONFIG=$(BOARD_CFG)
+test_imu_aspirin.srcs += $(SRC_BOOZ_TEST)/booz_test_imu.c \
+                    $(SRC_ARCH)/stm32_exceptions.c   \
+                    $(SRC_ARCH)/stm32_vector_table.c
+
+test_imu_aspirin.CFLAGS += -DUSE_LED
+test_imu_aspirin.srcs += $(SRC_ARCH)/led_hw.c
+
+test_imu_aspirin.CFLAGS += -DUSE_SYS_TIME -DSYS_TIME_LED=1
+test_imu_aspirin.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC((1./512.))'
+test_imu_aspirin.srcs += sys_time.c $(SRC_ARCH)/sys_time_hw.c
+
+test_imu_aspirin.CFLAGS += -DUSE_UART2 -DUART2_BAUD=B57600
+test_imu_aspirin.srcs += $(SRC_ARCH)/uart_hw.c
+
+test_imu_aspirin.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport 
-DDOWNLINK_DEVICE=Uart2
+test_imu_aspirin.srcs += downlink.c pprz_transport.c
+
+test_imu_aspirin.srcs += math/pprz_trig_int.c
+
+test_imu_aspirin.CFLAGS += -DBOOZ_IMU_TYPE_H=\"imu/booz_imu_aspirin.h\" 
-DIMU_OVERRIDE_CHANNELS
+test_imu_aspirin.srcs += $(SRC_BOOZ)/booz_imu.c             \
+                        $(SRC_BOOZ)/imu/booz_imu_aspirin.c \
+                        $(SRC_BOOZ_ARCH)/imu/booz_imu_aspirin_arch.c
+
+test_imu_aspirin.CFLAGS += -DUSE_I2C2
+test_imu_aspirin.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c
+test_imu_aspirin.CFLAGS += -DUSE_EXTI15_10_IRQ  # Gyro Int on PC14
+test_imu_aspirin.CFLAGS += -DUSE_EXTI9_5_IRQ    # Mag Int on PB5
+test_imu_aspirin.CFLAGS += -DUSE_EXTI2_IRQ      # Accel Int on PD2
+test_imu_aspirin.CFLAGS += -DUSE_DMA1_C4_IRQ    # SPI2 Rx DMA
+
+
+
+
+
+
+
+
+
+#
 # test hmc5843
 #
 test_hmc5843.ARCHDIR = $(ARCHI)
@@ -362,4 +410,7 @@
 test_adxl345.srcs += downlink.c pprz_transport.c
 
 test_adxl345.CFLAGS += -DUSE_EXTI2_IRQ   # Accel Int on PD2
-test_adxl345.CFLAGS += -DUSE_DMA1_C4_IRQ # SPI2 Rx DMA
\ No newline at end of file
+test_adxl345.CFLAGS += -DUSE_DMA1_C4_IRQ # SPI2 Rx DMA
+
+
+

Modified: 
paparazzi3/trunk/sw/airborne/booz/arch/stm32/imu/booz_imu_aspirin_arch.c
===================================================================
--- paparazzi3/trunk/sw/airborne/booz/arch/stm32/imu/booz_imu_aspirin_arch.c    
2010-09-02 19:32:17 UTC (rev 5791)
+++ paparazzi3/trunk/sw/airborne/booz/arch/stm32/imu/booz_imu_aspirin_arch.c    
2010-09-02 21:33:47 UTC (rev 5792)
@@ -223,18 +223,32 @@
   DMA_ITConfig(DMA1_Channel4, DMA_IT_TC, ENABLE);
 }
 
+/*
+ *
+ * Gyro data ready
+ *
+ */
 void exti15_10_irq_handler(void) {
 
   /* clear EXTI */
   if(EXTI_GetITStatus(EXTI_Line14) != RESET)
     EXTI_ClearITPendingBit(EXTI_Line14);
  
-  i2c2.buf[0] = ITG3200_REG_GYRO_XOUT_H;
-  i2c2_transceive(ITG3200_ADDR,1, 6, &imu_aspirin.i2c_done);
+  imu_aspirin.i2c_trans_gyro.type = I2CTransTxRx;
+  imu_aspirin.i2c_trans_gyro.buf[0] = ITG3200_REG_GYRO_XOUT_H;
+  imu_aspirin.i2c_trans_gyro.slave_addr = ITG3200_ADDR;
+  imu_aspirin.i2c_trans_gyro.len_w = 1;
+  imu_aspirin.i2c_trans_gyro.len_r = 6;
+  i2c_submit(&i2c2,&imu_aspirin.i2c_trans_gyro);
   imu_aspirin.status = AspirinStatusReadingGyro;
 
 }
 
+/*
+ *
+ * Mag data ready
+ *
+ */
 void exti9_5_irq_handler(void) {
 
   /* clear EXTI */
@@ -245,6 +259,11 @@
 
 }
 
+/*
+ *
+ * Accel data ready
+ *
+ */
 void exti2_irq_handler(void) {
 
   /* clear EXTI */
@@ -255,6 +274,11 @@
 
 }
 
+/*
+ *
+ * Accel end of DMA transfert
+ *
+ */
 void dma1_c4_irq_handler(void) {
   Adxl345Unselect();
   DMA_ITConfig(DMA1_Channel4, DMA_IT_TC, DISABLE);

Modified: 
paparazzi3/trunk/sw/airborne/booz/arch/stm32/imu/booz_imu_aspirin_arch.h
===================================================================
--- paparazzi3/trunk/sw/airborne/booz/arch/stm32/imu/booz_imu_aspirin_arch.h    
2010-09-02 19:32:17 UTC (rev 5791)
+++ paparazzi3/trunk/sw/airborne/booz/arch/stm32/imu/booz_imu_aspirin_arch.h    
2010-09-02 21:33:47 UTC (rev 5792)
@@ -10,23 +10,5 @@
 extern void adxl345_clear_rx_buf(void);
 extern void adxl345_start_reading_data(void);
 
-#if 0
-#define OnI2CDone() {                                                  \
-    switch (imu_aspirin.status) {                                      \
-    case AspirinStatusReadingGyro:                                     \
-      {                                                                        
\
-                                                                       \
-       int16_t gp = i2c2.buf[0]<<8 | i2c2.buf[1];                      \
-       int16_t gq = i2c2.buf[2]<<8 | i2c2.buf[3];                      \
-       int16_t gr = i2c2.buf[4]<<8 | i2c2.buf[5];                      \
-       RATES_ASSIGN(booz_imu.gyro_unscaled, gp, gq, gr);               \
-       /*if (abs(booz_imu.gyro_unscaled.p) > 32000 || 
abs(booz_imu.gyro_unscaled.q) > 32000) LED_ON(4);*/ \
-      }                                                                        
\
-      break;                                                           \
-    default:                                                           \
-      break;                                                           \
-    }                                                                  \
-  }
-#endif
 
 #endif /* BOOZ_IMU_ASPIRIN_ARCH_H */

Modified: paparazzi3/trunk/sw/airborne/booz/imu/booz_imu_aspirin.c
===================================================================
--- paparazzi3/trunk/sw/airborne/booz/imu/booz_imu_aspirin.c    2010-09-02 
19:32:17 UTC (rev 5791)
+++ paparazzi3/trunk/sw/airborne/booz/imu/booz_imu_aspirin.c    2010-09-02 
21:33:47 UTC (rev 5792)
@@ -13,7 +13,6 @@
 void booz_imu_impl_init(void) {
 
   imu_aspirin.status = AspirinStatusUninit;
-  imu_aspirin.i2c_done = FALSE;
   imu_aspirin.gyro_available = FALSE;
   imu_aspirin.gyro_available_blaaa = FALSE;
   imu_aspirin.mag_ready_for_read = FALSE;
@@ -28,7 +27,7 @@
 void booz_imu_periodic(void) {
   if (imu_aspirin.status == AspirinStatusUninit) {
     configure_gyro();
-    //    configure_mag();
+    configure_mag();
     configure_accel();
     imu_aspirin.status = AspirinStatusIdle;
   }
@@ -40,47 +39,54 @@
 /* sends a serie of I2C commands to configure the ITG3200 gyro */
 static void configure_gyro(void) {
   
+  struct i2c_transaction t;
+  t.type = I2CTransTx;
+  t.slave_addr = ITG3200_ADDR;
   /* set gyro range to 2000deg/s and low pass at 256Hz */
-  i2c2.buf[0] = ITG3200_REG_DLPF_FS;
-  i2c2.buf[1] = (0x03<<3);
-  i2c2_transmit(ITG3200_ADDR, 2, &imu_aspirin.i2c_done);
-  while (!imu_aspirin.i2c_done);
+  t.buf[0] = ITG3200_REG_DLPF_FS;
+  t.buf[1] = (0x03<<3);
+  t.len_w = 2;
+  i2c_submit(&i2c2,&t);
+  while (t.status != I2CTransSuccess);
   /* set sample rate to 533Hz */
-  i2c2.buf[0] = ITG3200_REG_SMPLRT_DIV;
-  i2c2.buf[1] = 0x0E;
-  i2c2_transmit(ITG3200_ADDR, 2, &imu_aspirin.i2c_done);
-  while (!imu_aspirin.i2c_done);
+  t.buf[0] = ITG3200_REG_SMPLRT_DIV;
+  t.buf[1] = 0x0E;
+  i2c_submit(&i2c2,&t);
+  while (t.status != I2CTransSuccess);
   /* switch to gyroX clock */
-  i2c2.buf[0] = ITG3200_REG_PWR_MGM;
-  i2c2.buf[1] = 0x01;
-  i2c2_transmit(ITG3200_ADDR, 2, &imu_aspirin.i2c_done);
-  while (!imu_aspirin.i2c_done);
+  t.buf[0] = ITG3200_REG_PWR_MGM;
+  t.buf[1] = 0x01;
+  i2c_submit(&i2c2,&t);
+  while (t.status != I2CTransSuccess);
   /* enable interrupt on data ready, idle hight */
-  i2c2.buf[0] = ITG3200_REG_INT_CFG;
-  i2c2.buf[1] = (0x01 | 0x01<<7);
-  i2c2_transmit(ITG3200_ADDR, 2, &imu_aspirin.i2c_done);
-  while (!imu_aspirin.i2c_done);
-
+  t.buf[0] = ITG3200_REG_INT_CFG;
+  t.buf[1] = (0x01 | 0x01<<7);
+  i2c_submit(&i2c2,&t);
+  while (t.status != I2CTransSuccess);
+  
 }
 
 /* sends a serie of I2C commands to configure the ITG3200 gyro */
 static void configure_mag(void) {
 
+  struct i2c_transaction t;
+  t.type = I2CTransTx;
+  t.slave_addr = HMC5843_ADDR;
   /* set to rate to 50Hz */
-  i2c2.buf[0] = HMC5843_REG_CFGA; 
-  i2c2.buf[1] = 0x00 | (0x06 << 2);
-  i2c2_transmit(HMC5843_ADDR, 2, &imu_aspirin.i2c_done);
-  while (!imu_aspirin.i2c_done);
+  t.buf[0] = HMC5843_REG_CFGA; 
+  t.buf[1] = 0x00 | (0x06 << 2);
+  i2c_submit(&i2c2,&t);
+  while (t.status != I2CTransSuccess);
   /* set to gain to 1 Gauss */
-  i2c2.buf[0] = HMC5843_REG_CFGB;
-  i2c2.buf[1] = 0x01<<5;
-  i2c2_transmit(HMC5843_ADDR, 2, &imu_aspirin.i2c_done);
-  while (!imu_aspirin.i2c_done);
+  t.buf[0] = HMC5843_REG_CFGB;
+  t.buf[1] = 0x01<<5;
+  i2c_submit(&i2c2,&t);
+  while (t.status != I2CTransSuccess);
   /* set to continuous mode */
-  i2c2.buf[0] = HMC5843_REG_MODE; 
-  i2c2.buf[1] = 0x00;
-  i2c2_transmit(HMC5843_ADDR, 2, &imu_aspirin.i2c_done);
-  while (!imu_aspirin.i2c_done);
+  t.buf[0] = HMC5843_REG_MODE; 
+  t.buf[1] = 0x00;
+  i2c_submit(&i2c2,&t);
+  while (t.status != I2CTransSuccess);
 
 }
 

Modified: paparazzi3/trunk/sw/airborne/booz/imu/booz_imu_aspirin.h
===================================================================
--- paparazzi3/trunk/sw/airborne/booz/imu/booz_imu_aspirin.h    2010-09-02 
19:32:17 UTC (rev 5791)
+++ paparazzi3/trunk/sw/airborne/booz/imu/booz_imu_aspirin.h    2010-09-02 
21:33:47 UTC (rev 5792)
@@ -27,10 +27,28 @@
 #include "airframe.h"
 #include "booz_imu.h"
 
-#include "peripherals/booz_itg3200.h"
-#include "peripherals/booz_hmc5843.h"
-#include "peripherals/booz_adxl345.h"
+#include "i2c.h"
+#include "booz/peripherals/booz_itg3200.h"
+#include "booz/peripherals/booz_hmc5843.h"
+#include "booz/peripherals/booz_adxl345.h"
 
+
+#if !defined IMU_GYRO_P_SIGN & !defined IMU_GYRO_Q_SIGN & !defined 
IMU_GYRO_R_SIGN
+#define IMU_GYRO_P_SIGN   1
+#define IMU_GYRO_Q_SIGN   1
+#define IMU_GYRO_R_SIGN   1
+#endif
+#if !defined IMU_ACCEL_X_SIGN & !defined IMU_ACCEL_Y_SIGN & !defined 
IMU_ACCEL_Z_SIGN
+#define IMU_ACCEL_X_SIGN  1
+#define IMU_ACCEL_Y_SIGN  1
+#define IMU_ACCEL_Z_SIGN  1
+#endif
+#if !defined IMU_MAG_X_SIGN & !defined IMU_MAG_Y_SIGN & !defined IMU_MAG_Z_SIGN
+#define IMU_MAG_X_SIGN    1
+#define IMU_MAG_Y_SIGN    1
+#define IMU_MAG_Z_SIGN    1
+#endif
+
 enum AspirinStatus 
   { AspirinStatusUninit,
     AspirinStatusIdle,
@@ -40,7 +58,8 @@
 
 struct BoozImuAspirin {
   volatile enum AspirinStatus status;
-  volatile uint8_t i2c_done;
+  struct i2c_transaction i2c_trans_gyro;
+  struct i2c_transaction i2c_trans_mag;
   uint8_t gyro_available;
   uint8_t gyro_available_blaaa;
   uint8_t mag_available;
@@ -56,14 +75,18 @@
 
 
 #define BoozImuEvent(_gyro_accel_handler, _mag_handler) {              \
-    if (imu_aspirin.status == AspirinStatusReadingGyro && 
imu_aspirin.i2c_done) { \
-      int16_t gp = i2c2.buf[0]<<8 | i2c2.buf[1];                       \
-      int16_t gq = i2c2.buf[2]<<8 | i2c2.buf[3];                       \
-      int16_t gr = i2c2.buf[4]<<8 | i2c2.buf[5];                       \
+    if (imu_aspirin.status == AspirinStatusReadingGyro &&              \
+       imu_aspirin.i2c_trans_gyro.status == I2CTransSuccess) {         \
+      int16_t gp = imu_aspirin.i2c_trans_gyro.buf[0]<<8 | 
imu_aspirin.i2c_trans_gyro.buf[1]; \
+      int16_t gq = imu_aspirin.i2c_trans_gyro.buf[2]<<8 | 
imu_aspirin.i2c_trans_gyro.buf[3]; \
+      int16_t gr = imu_aspirin.i2c_trans_gyro.buf[4]<<8 | 
imu_aspirin.i2c_trans_gyro.buf[5]; \
       RATES_ASSIGN(booz_imu.gyro_unscaled, gp, gq, gr);                        
\
       if (imu_aspirin.mag_ready_for_read ) {                           \
        /* read mag */                                                  \
-       i2c2_receive(HMC5843_ADDR, 7, &imu_aspirin.i2c_done);           \
+       imu_aspirin.i2c_trans_mag.type = I2CTransRx;                    \
+       imu_aspirin.i2c_trans_mag.slave_addr = HMC5843_ADDR;            \
+       imu_aspirin.i2c_trans_mag.len_r = 7;                            \
+       i2c_submit(&i2c2,&imu_aspirin.i2c_trans_mag);                   \
        imu_aspirin.mag_ready_for_read = FALSE;                         \
        imu_aspirin.status = AspirinStatusReadingMag;                   \
       }                                                                        
\
@@ -71,10 +94,11 @@
        imu_aspirin.status = AspirinStatusIdle;                         \
       }                                                                        
\
     }                                                                  \
-    if (imu_aspirin.status == AspirinStatusReadingMag && imu_aspirin.i2c_done) 
{ \
-      int16_t mx   = i2c2.buf[0]<<8 | i2c2.buf[1];                     \
-      int16_t my   = i2c2.buf[2]<<8 | i2c2.buf[3];                     \
-      int16_t mz   = i2c2.buf[4]<<8 | i2c2.buf[5];                     \
+    if (imu_aspirin.status == AspirinStatusReadingMag &&               \
+       imu_aspirin.i2c_trans_mag.status == I2CTransSuccess) {          \
+      int16_t mx   = imu_aspirin.i2c_trans_mag.buf[0]<<8 | 
imu_aspirin.i2c_trans_mag.buf[1]; \
+      int16_t my   = imu_aspirin.i2c_trans_mag.buf[2]<<8 | 
imu_aspirin.i2c_trans_mag.buf[3]; \
+      int16_t mz   = imu_aspirin.i2c_trans_mag.buf[4]<<8 | 
imu_aspirin.i2c_trans_mag.buf[5]; \
       VECT3_ASSIGN(booz_imu.mag_unscaled, mx, my, mz);                 \
       imu_aspirin.mag_available = TRUE;                                        
\
       imu_aspirin.status = AspirinStatusIdle;                          \

Modified: paparazzi3/trunk/sw/airborne/lisa/test/lisa_test_aspirin.c
===================================================================
--- paparazzi3/trunk/sw/airborne/lisa/test/lisa_test_aspirin.c  2010-09-02 
19:32:17 UTC (rev 5791)
+++ paparazzi3/trunk/sw/airborne/lisa/test/lisa_test_aspirin.c  2010-09-02 
21:33:47 UTC (rev 5792)
@@ -41,7 +41,6 @@
 
 static inline void main_init_hw(void);
 
-static uint8_t i2c_done;
 static volatile uint8_t gyro_ready_for_read;
 
 extern void exti2_irq_handler(void);

Modified: paparazzi3/trunk/sw/airborne/lisa/test/lisa_test_hmc5843.c
===================================================================
--- paparazzi3/trunk/sw/airborne/lisa/test/lisa_test_hmc5843.c  2010-09-02 
19:32:17 UTC (rev 5791)
+++ paparazzi3/trunk/sw/airborne/lisa/test/lisa_test_hmc5843.c  2010-09-02 
21:33:47 UTC (rev 5792)
@@ -42,8 +42,12 @@
 static inline void main_event_task( void );
 
 static inline void main_init_hw(void);
+static void send_config(void);
 
 static struct i2c_transaction i2c_trans;
+struct i2c_transaction t1;
+struct i2c_transaction t2;
+
 #define INITIALIZED 6
 static uint8_t mag_state = 0;
 static volatile uint8_t mag_ready_for_read = FALSE;
@@ -89,7 +93,9 @@
                               &i2c2_errors.unexpected_event_cnt,
                               &i2c2_errors.last_unexpected_event);
     });
-  
+  if (mag_state == 2) send_config();
+
+#if 0
   switch (mag_state) {
   case 2:
     i2c_trans.type = I2CTransTx;
@@ -124,7 +130,7 @@
   default:
     break;
   }
-  
+#endif  
   //  if (mag_state  == 4) mag_state=1;
   
   if (mag_state  < INITIALIZED) mag_state++;
@@ -161,9 +167,42 @@
     reading_mag = FALSE;
   }
 
+}
 
+
+
+static void send_config(void) {
+
+  t1.type = I2CTransTx;
+  t1.slave_addr = HMC5843_ADDR;
+  t1.buf[0] = HMC5843_REG_CFGA;  // set to rate to 50Hz
+  t1.buf[1] = 0x00 | (0x06 << 2);
+  t1.len_w = 2;
+  i2c_submit(&i2c2,&t1);
+    
+  t2.type = I2CTransTx;
+  t2.slave_addr = HMC5843_ADDR;
+  t2.buf[0] = HMC5843_REG_CFGB;  // set to gain to 1 Gauss
+  t2.buf[1] = 0x01<<5;
+  t2.len_w = 2;
+  i2c_submit(&i2c2,&t2);
+
+  i2c_trans.type = I2CTransTx;
+  i2c_trans.slave_addr = HMC5843_ADDR;
+  i2c_trans.buf[0] = HMC5843_REG_MODE;  // set to continuous mode
+  i2c_trans.buf[1] = 0x00;
+  i2c_trans.len_w = 2;
+  i2c_submit(&i2c2,&i2c_trans);
+
 }
 
+
+
+
+
+
+
+
 static inline void main_init_hw( void ) {
   /* set mag ss as floating input (on PC12)    = shorted to I2C2 sda 
----------*/
   /* set mag reset as floating input (on PC13) = shorted to I2C2 scl 
----------*/

Modified: paparazzi3/trunk/sw/airborne/stm32/i2c_hw.c
===================================================================
--- paparazzi3/trunk/sw/airborne/stm32/i2c_hw.c 2010-09-02 19:32:17 UTC (rev 
5791)
+++ paparazzi3/trunk/sw/airborne/stm32/i2c_hw.c 2010-09-02 21:33:47 UTC (rev 
5792)
@@ -702,7 +702,7 @@
   /* if peripheral is idle, start the transaction */
   if (p->status == I2CIdle)
     start_transaction(p);
-  
+  /* else it will be started by the interrupt handler when the previous 
transactions completes */
   __enable_irq();
 
   return TRUE;




reply via email to

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