diff --git a/conf/airframes/Poine/booz2_a6.xml b/conf/airframes/Poine/booz2_a6.xml
index a0003c88af..0b2779af92 100644
--- a/conf/airframes/Poine/booz2_a6.xml
+++ b/conf/airframes/Poine/booz2_a6.xml
@@ -159,56 +159,53 @@
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-USER =
-#HOST = 10.31.4.22
-HOST = overo
-#HOST = beth
-TARGET_DIR = ~
-
-SRC_FMS=fms
-ARCH=stm32
-ARCHI=stm32
-BOARD_CFG=\"boards/lisa_0.99.h\"
-FLASH_MODE = JTAG
-
-ap.CFLAGS += -DMODEM_BAUD=B57600
-ap.CFLAGS += -DRADIO_CONTROL_SPEKTRUM_MODEL_H=\"radio_control/booz_radio_control_spektrum_dx7se.h\"
-
-include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile
-include $(CFG_BOOZ)/booz2_autopilot.makefile
-
-include $(CFG_BOOZ)/subsystems/booz2_radio_control_spektrum.makefile
-include $(CFG_BOOZ)/subsystems/booz2_actuators_mkk.makefile
-include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1_1.makefile
-#include $(CFG_BOOZ)/subsystems/booz2_gps.makefile
-include $(CFG_BOOZ)/subsystems/booz2_ahrs_cmpl.makefile
-
-
-include $(PAPARAZZI_SRC)/conf/autopilot/lisa_test_progs.makefile
-
-#
-#
-#
-
-include $(PAPARAZZI_SRC)/conf/autopilot/lisa_passthrough.makefile
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/airframes/Poine/booz2_a7.xml b/conf/airframes/Poine/booz2_a7.xml
index ec25f7012b..79a1e959fa 100644
--- a/conf/airframes/Poine/booz2_a7.xml
+++ b/conf/airframes/Poine/booz2_a7.xml
@@ -211,7 +211,11 @@
-
+
+
+
+
+
@@ -229,10 +233,5 @@
-
-
-#include $(PAPARAZZI_SRC)/conf/autopilot/lisa_test_progs.makefile
-
-
diff --git a/conf/autopilot/lisa_l_test_progs.makefile b/conf/autopilot/lisa_l_test_progs.makefile
index 562b5087c1..96fca4d978 100644
--- a/conf/autopilot/lisa_l_test_progs.makefile
+++ b/conf/autopilot/lisa_l_test_progs.makefile
@@ -414,3 +414,106 @@ test_adxl345.CFLAGS += -DUSE_DMA1_C4_IRQ # SPI2 Rx DMA
+#
+# simple test of mikrokopter motor controllers
+#
+test_esc_mkk_simple.ARCHDIR = $(ARCHI)
+test_esc_mkk_simple.TARGET = test_esc_mkk_simple
+test_esc_mkk_simple.TARGETDIR = test_esc_mkk_simple
+test_esc_mkk_simple.CFLAGS = -I$(SRC_LISA) -I$(ARCHI) -DPERIPHERALS_AUTO_INIT
+test_esc_mkk_simple.CFLAGS += -DBOARD_CONFIG=$(BOARD_CFG)
+test_esc_mkk_simple.srcs = test/test_esc_mkk_simple.c \
+ $(SRC_ARCH)/stm32_exceptions.c \
+ $(SRC_ARCH)/stm32_vector_table.c
+test_esc_mkk_simple.CFLAGS += -DUSE_LED
+test_esc_mkk_simple.srcs += $(SRC_ARCH)/led_hw.c
+test_esc_mkk_simple.CFLAGS += -DUSE_SYS_TIME -DSYS_TIME_LED=1
+test_esc_mkk_simple.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC(1./512.)'
+test_esc_mkk_simple.srcs += sys_time.c $(SRC_ARCH)/sys_time_hw.c
+test_esc_mkk_simple.CFLAGS += -DUSE_I2C1
+test_esc_mkk_simple.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c
+
+
+#
+# simple test of asctec v1 motor controllers
+#
+test_esc_asctecv1_simple.ARCHDIR = $(ARCHI)
+test_esc_asctecv1_simple.TARGET = test_esc_asctecv1_simple
+test_esc_asctecv1_simple.TARGETDIR = test_esc_asctecv1_simple
+test_esc_asctecv1_simple.CFLAGS = -I$(SRC_LISA) -I$(ARCHI) -DPERIPHERALS_AUTO_INIT
+test_esc_asctecv1_simple.CFLAGS += -DBOARD_CONFIG=$(BOARD_CFG)
+test_esc_asctecv1_simple.srcs = test/test_esc_asctecv1_simple.c \
+ $(SRC_ARCH)/stm32_exceptions.c \
+ $(SRC_ARCH)/stm32_vector_table.c
+test_esc_asctecv1_simple.CFLAGS += -DUSE_LED
+test_esc_asctecv1_simple.srcs += $(SRC_ARCH)/led_hw.c
+test_esc_asctecv1_simple.CFLAGS += -DUSE_SYS_TIME -DSYS_TIME_LED=1
+test_esc_asctecv1_simple.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC(1./512.)'
+test_esc_asctecv1_simple.srcs += sys_time.c $(SRC_ARCH)/sys_time_hw.c
+test_esc_asctecv1_simple.CFLAGS += -DUSE_I2C1
+test_esc_asctecv1_simple.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c
+
+
+#
+# test actuators mkk
+#
+test_actuators_mkk.ARCHDIR = $(ARCHI)
+test_actuators_mkk.TARGET = test_actuators_mkk
+test_actuators_mkk.TARGETDIR = test_actuators_mkk
+test_actuators_mkk.CFLAGS = -I$(SRC_LISA) -I$(ARCHI) -I$(SRC_BOOZ) -I$(SRC_BOOZ_ARCH) -DPERIPHERALS_AUTO_INIT
+test_actuators_mkk.CFLAGS += -DBOARD_CONFIG=$(BOARD_CFG)
+test_actuators_mkk.srcs = test/test_actuators.c \
+ $(SRC_ARCH)/stm32_exceptions.c \
+ $(SRC_ARCH)/stm32_vector_table.c
+
+test_actuators_mkk.CFLAGS += -DUSE_LED
+test_actuators_mkk.srcs += $(SRC_ARCH)/led_hw.c
+
+test_actuators_mkk.CFLAGS += -DUSE_SYS_TIME -DSYS_TIME_LED=1
+test_actuators_mkk.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC(1./512.)'
+test_actuators_mkk.srcs += sys_time.c $(SRC_ARCH)/sys_time_hw.c
+
+test_actuators_mkk.CFLAGS += -DUSE_UART2 -DUART2_BAUD=B57600
+test_actuators_mkk.srcs += $(SRC_ARCH)/uart_hw.c
+
+test_actuators_mkk.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart2
+test_actuators_mkk.srcs += downlink.c pprz_transport.c
+
+test_actuators_mkk.srcs += $(SRC_BOOZ)/booz2_commands.c
+test_actuators_mkk.srcs += $(SRC_BOOZ)/actuators/booz_actuators_mkk.c
+test_actuators_mkk.CFLAGS += -DACTUATORS_MKK_DEVICE=i2c1
+test_actuators_mkk.srcs += $(SRC_BOOZ)/actuators/booz_supervision.c
+test_actuators_mkk.CFLAGS += -DUSE_I2C1
+test_actuators_mkk.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c
+
+#
+# test actuators asctecv1
+#
+test_actuators_asctecv1.ARCHDIR = $(ARCHI)
+test_actuators_asctecv1.TARGET = test_actuators_asctecv1
+test_actuators_asctecv1.TARGETDIR = test_actuators_asctecv1
+test_actuators_asctecv1.CFLAGS = -I$(SRC_LISA) -I$(ARCHI) -I$(SRC_BOOZ) -I$(SRC_BOOZ_ARCH) -DPERIPHERALS_AUTO_INIT
+test_actuators_asctecv1.CFLAGS += -DBOARD_CONFIG=$(BOARD_CFG)
+test_actuators_asctecv1.srcs = test/test_actuators.c \
+ $(SRC_ARCH)/stm32_exceptions.c \
+ $(SRC_ARCH)/stm32_vector_table.c
+
+test_actuators_asctecv1.CFLAGS += -DUSE_LED
+test_actuators_asctecv1.srcs += $(SRC_ARCH)/led_hw.c
+
+test_actuators_asctecv1.CFLAGS += -DUSE_SYS_TIME -DSYS_TIME_LED=1
+test_actuators_asctecv1.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC(1./512.)'
+test_actuators_asctecv1.srcs += sys_time.c $(SRC_ARCH)/sys_time_hw.c
+
+test_actuators_asctecv1.CFLAGS += -DUSE_UART2 -DUART2_BAUD=B57600
+test_actuators_asctecv1.srcs += $(SRC_ARCH)/uart_hw.c
+
+test_actuators_asctecv1.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart2
+test_actuators_asctecv1.srcs += downlink.c pprz_transport.c
+
+test_actuators_asctecv1.srcs += $(SRC_BOOZ)/booz2_commands.c
+test_actuators_asctecv1.CFLAGS += -DACTUATORS_ASCTEC_DEVICE=i2c1
+test_actuators_asctecv1.srcs += $(SRC_BOOZ)/actuators/booz_actuators_asctec.c
+test_actuators_asctecv1.CFLAGS += -DUSE_I2C1
+test_actuators_asctecv1.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c
+
diff --git a/conf/autopilot/subsystems/rotorcraft/actuators_mkk.makefile b/conf/autopilot/subsystems/rotorcraft/actuators_mkk.makefile
index 76b9660104..1eaf6c77b0 100644
--- a/conf/autopilot/subsystems/rotorcraft/actuators_mkk.makefile
+++ b/conf/autopilot/subsystems/rotorcraft/actuators_mkk.makefile
@@ -28,7 +28,6 @@
#
ap.srcs += $(SRC_BOOZ)/actuators/booz_supervision.c
ap.srcs += $(SRC_BOOZ)/actuators/booz_actuators_mkk.c
-ap.srcs += $(SRC_BOOZ_ARCH)/actuators/booz_actuators_mkk_arch.c
ap.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c
ifeq ($(ARCHI), arm7)
@@ -36,13 +35,12 @@ ap.CFLAGS += -DUSE_I2C0 -DI2C0_SCLL=150 -DI2C0_SCLH=150 -DI2C0_VIC_SLOT=10
ap.CFLAGS += -DI2C0_STOP_HANDLER=ActuatorsMkkI2cHandler
ap.CFLAGS += -DI2C0_STOP_HANDLER_HEADER=\"actuators/booz_actuators_mkk.h\"
else ifeq ($(ARCHI), stm32)
-ap.CFLAGS += -DACTUATORS_MKK_DEVICE=i2c1 -DUSE_TIM2_IRQ
+ap.CFLAGS += -DACTUATORS_MKK_DEVICE=i2c1
ap.CFLAGS += -DUSE_I2C1
endif
# Simulator
sim.srcs += $(SRC_BOOZ)/actuators/booz_supervision.c
sim.srcs += $(SRC_BOOZ)/actuators/booz_actuators_mkk.c
-sim.srcs += $(SRC_BOOZ_SIM)/actuators/booz_actuators_mkk_arch.c
sim.CFLAGS += -DUSE_I2C0 -DI2C0_SCLL=150 -DI2C0_SCLH=150 -DI2C0_VIC_SLOT=10
sim.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c
diff --git a/sw/airborne/booz/actuators/booz_actuators_asctec.c b/sw/airborne/booz/actuators/booz_actuators_asctec.c
index 9f2ecb53de..afd64fe0fc 100644
--- a/sw/airborne/booz/actuators/booz_actuators_asctec.c
+++ b/sw/airborne/booz/actuators/booz_actuators_asctec.c
@@ -1,33 +1,15 @@
-#include "booz_actuators.h"
-#include "actuators/booz_actuators_asctec.h"
+#include "booz/booz_actuators.h"
+#include "booz/actuators/booz_actuators_asctec.h"
#ifdef ACTUATORS_ASCTEC_V2_PROTOCOL
-#include "actuators/booz_supervision.h"
+#include "booz/actuators/booz_supervision.h"
#endif
-#include "booz2_commands.h"
+#include "booz/booz2_commands.h"
#include "i2c.h"
#include "sys_time.h"
-#ifndef ACTUATORS_ASCTEC_DEVICE
-#define ACTUATORS_ASCTEC_DEVICE i2c0
-#endif
-
-/*
- * Macros to generate i2cx_buf and i2cx_transmit from
- * ACTUATORS_ASCTEC_DEVICE
- *
- */
-#define __Device(dev, _z) dev##_##_z
-#define _Device(dev, _z) __Device(dev, _z)
-#define Device( _z) _Device(ACTUATORS_ASCTEC_DEVICE, _z)
-
-#define DeviceBuf Device(buf)
-#define DeviceTransmit(_x, _y, _z) Device(transmit(_x, _y, _z))
-
-
-
struct ActuatorsAsctec actuators_asctec;
uint32_t actuators_delay_time;
@@ -38,6 +20,13 @@ void actuators_init(void) {
actuators_asctec.cur_addr = FRONT;
actuators_asctec.new_addr = FRONT;
actuators_asctec.i2c_trans.status = I2CTransSuccess;
+ actuators_asctec.i2c_trans.type = I2CTransTx;
+ actuators_asctec.i2c_trans.slave_addr = 0x02;
+#ifdef ACTUATORS_ASCTEC_V2_PROTOCOL
+ actuators_asctec.i2c_trans.len_w = 5;
+#else
+ actuators_asctec.i2c_trans.len_w = 4;
+#endif
actuators_asctec.nb_err = 0;
#if defined BOOZ_START_DELAY && ! defined SITL
@@ -117,9 +106,7 @@ void actuators_set(bool_t motors_on) {
}
actuators_asctec.cmd = NONE;
- i2c_submit(&i2c1,&actuators_asctec.i2c_trans);
- // actuators_asctec.i2c_done = FALSE;
- // DeviceTransmit(0x02, 4, &actuators_asctec.i2c_done);
+ i2c_submit(&ACTUATORS_ASCTEC_DEVICE, &actuators_asctec.i2c_trans);
}
#else /* ! ACTUATORS_ASCTEC_V2_PROTOCOL */
@@ -141,12 +128,7 @@ void actuators_set(bool_t motors_on) {
actuators_asctec.i2c_trans.buf[2] + actuators_asctec.i2c_trans.buf[3];
#endif
- i2c_submit(&i2c1,&actuators_asctec.i2c_trans);
-
- // if (actuators_asctec.i2c_done) {
- //actuators_asctec.i2c_done = FALSE;
- // DeviceTransmit(0x02, 5, &actuators_asctec.i2c_done);
- // }
+ i2c_submit(&ACTUATORS_ASCTEC_DEVICE, &actuators_asctec.i2c_trans);
}
#endif /* ACTUATORS_ASCTEC_V2_PROTOCOL */
diff --git a/sw/airborne/booz/actuators/booz_actuators_mkk.c b/sw/airborne/booz/actuators/booz_actuators_mkk.c
index 621442c690..15cbc8d86e 100644
--- a/sw/airborne/booz/actuators/booz_actuators_mkk.c
+++ b/sw/airborne/booz/actuators/booz_actuators_mkk.c
@@ -21,8 +21,8 @@
* Boston, MA 02111-1307, USA.
*/
-#include "booz_actuators.h"
-#include "actuators/booz_actuators_mkk.h"
+#include "booz/booz_actuators.h"
+#include "booz/actuators/booz_actuators_mkk.h"
#include "booz/booz2_commands.h"
#include "i2c.h"
@@ -31,7 +31,6 @@
struct ActuatorsMkk actuators_mkk;
-const uint8_t actuators_addr[ACTUATORS_MKK_NB] = ACTUATORS_MKK_ADDR;
uint32_t actuators_delay_time;
bool_t actuators_delay_done;
@@ -39,10 +38,14 @@ bool_t actuators_delay_done;
void actuators_init(void) {
supervision_init();
- actuators_mkk.status = IDLE;
- actuators_mkk.i2c_done = TRUE;
- actuators_mkk.idx = 0;
-
+ const uint8_t actuators_addr[ACTUATORS_MKK_NB] = ACTUATORS_MKK_ADDR;
+ for (uint8_t i=0; i
-#include
-
-void tim2_irq_handler(void);
-
-/* ---------------------------------------------------------------
- TIM2 Configuration: Output Compare Timing Mode:
- TIM2CLK = 36 MHz, Prescaler = 4, TIM2 counter clock = 7.2 MHz
-*/
-
-void booz_actuators_mkk_arch_init(void) {
-
- /* TIM2 clock enable */
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
-
- /* Time base configuration */
- TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
- TIM_TimeBaseStructure.TIM_Period = 3072;
- // TIM_TimeBaseStructure.TIM_Period = 2048;
- TIM_TimeBaseStructure.TIM_Prescaler = 0;
- TIM_TimeBaseStructure.TIM_ClockDivision = 0;
- TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
- TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
- /* Prescaler configuration */
- TIM_PrescalerConfig(TIM2, 4, TIM_PSCReloadMode_Immediate);
-
- /* Enable the TIM2 global Interrupt */
- NVIC_InitTypeDef NVIC_InitStructure;
- NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
-
- // DEBUG5_INIT();
-
- TIM_Cmd(TIM2, ENABLE);
-
-}
-
-void tim2_irq_handler(void) {
- // DEBUG5_T();
-
- /* Clear TIM2 update interrupt */
- TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
- actuators_mkk.idx++;
- if (actuators_mkk.idx
+#define I2C_ZERO_EVENTS(_err) { \
+ _err.irq_cnt = 0; \
+ memset((void*)_err.event_chain, 0, sizeof(_err.event_chain)); \
+ memset((void*)_err.status_chain, 0, sizeof(_err.status_chain)); \
+ }
+
+#define ZEROS_ERR_COUNTER(_i2c_err) { \
+ _i2c_err.ack_fail_cnt = 0; \
+ _i2c_err.miss_start_stop_cnt = 0; \
+ _i2c_err.arb_lost_cnt = 0; \
+ _i2c_err.over_under_cnt = 0; \
+ _i2c_err.pec_recep_cnt = 0; \
+ _i2c_err.timeout_tlow_cnt = 0; \
+ _i2c_err.smbus_alert_cnt = 0; \
+ _i2c_err.unexpected_event_cnt = 0; \
+ _i2c_err.last_unexpected_event = 0; \
+ _i2c_err.er_irq_cnt = 0; \
+ }
+
+
#ifdef USE_I2C0
extern void i2c0_init(void);
diff --git a/sw/airborne/stm32/i2c_hw.c b/sw/airborne/stm32/i2c_hw.c
index 22a96aa523..c0a18ba89c 100644
--- a/sw/airborne/stm32/i2c_hw.c
+++ b/sw/airborne/stm32/i2c_hw.c
@@ -5,18 +5,6 @@
#include
#include
-#define ZEROS_ERR_COUNTER(_i2c_err) { \
- _i2c_err.ack_fail_cnt = 0; \
- _i2c_err.miss_start_stop_cnt = 0; \
- _i2c_err.arb_lost_cnt = 0; \
- _i2c_err.over_under_cnt = 0; \
- _i2c_err.pec_recep_cnt = 0; \
- _i2c_err.timeout_tlow_cnt = 0; \
- _i2c_err.smbus_alert_cnt = 0; \
- _i2c_err.unexpected_event_cnt = 0; \
- _i2c_err.last_unexpected_event = 0; \
- _i2c_err.er_irq_cnt = 0; \
- }
static void start_transaction(struct i2c_periph* p);
@@ -52,8 +40,8 @@ struct i2c_errors i2c1_errors;
}
#define I2C1_ABORT_AND_RESET() { \
- struct i2c_transaction* trans = i2c1.trans[i2c1.trans_extract_idx]; \
- trans->status = I2CTransFailed; \
+ struct i2c_transaction* trans2 = i2c1.trans[i2c1.trans_extract_idx]; \
+ trans2->status = I2CTransFailed; \
i2c1.status = I2CFailed; \
I2C_ITConfig(I2C1, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR, DISABLE); \
I2C_Cmd(I2C1, DISABLE); \
@@ -130,7 +118,7 @@ void i2c1_hw_init(void) {
void i2c1_ev_irq_handler(void) {
uint32_t event = I2C_GetLastEvent(I2C1);
- struct i2c_transaction* trans = i2c2.trans[i2c2.trans_extract_idx];
+ struct i2c_transaction* trans = i2c1.trans[i2c1.trans_extract_idx];
switch (event) {
/* EV5 */
case I2C_EVENT_MASTER_MODE_SELECT:
@@ -321,7 +309,7 @@ void i2c2_hw_init(void) {
I2C_ITConfig(I2C2, I2C_IT_ERR, ENABLE);
// DEBUG_SERVO1_INIT();
- DEBUG_SERVO2_INIT();
+ // DEBUG_SERVO2_INIT();
}
@@ -590,14 +578,14 @@ static inline void on_status_restart_requested(struct i2c_transaction* trans, ui
}
void i2c2_ev_irq_handler(void) {
- DEBUG_S4_ON();
+ // DEBUG_S4_ON();
uint32_t event = I2C_GetLastEvent(I2C2);
struct i2c_transaction* trans = i2c2.trans[i2c2.trans_extract_idx];
//#if 0
// if (i2c2_errors.irq_cnt < 16) {
- i2c2_errors.event_chain[i2c2_errors.irq_cnt] = event;
- i2c2_errors.status_chain[i2c2_errors.irq_cnt] = i2c2.status;
- i2c2_errors.irq_cnt++;
+ // i2c2_errors.event_chain[i2c2_errors.irq_cnt] = event;
+ // i2c2_errors.status_chain[i2c2_errors.irq_cnt] = i2c2.status;
+ // i2c2_errors.irq_cnt++;
// } else { while (1);}
//#endif
switch (i2c2.status) {
@@ -646,7 +634,7 @@ void i2c2_ev_irq_handler(void) {
OUT_OF_SYNC_STATE_MACHINE(i2c2.status, event);
break;
}
- DEBUG_S4_OFF();
+ // DEBUG_S4_OFF();
}
@@ -725,7 +713,7 @@ bool_t i2c_submit(struct i2c_periph* p, struct i2c_transaction* t) {
static void start_transaction(struct i2c_periph* p) {
p->idx_buf = 0;
p->status = I2CStartRequested;
- I2C_ZERO_EVENTS();
+ // I2C_ZERO_EVENTS();
I2C_ITConfig(p->reg_addr, I2C_IT_EVT, ENABLE);
I2C_GenerateSTART(p->reg_addr, ENABLE);
}
diff --git a/sw/airborne/stm32/i2c_hw.h b/sw/airborne/stm32/i2c_hw.h
index c64d23c46c..a8603d2f60 100644
--- a/sw/airborne/stm32/i2c_hw.h
+++ b/sw/airborne/stm32/i2c_hw.h
@@ -52,12 +52,6 @@ extern void i2c2_hw_init(void);
extern void i2c2_ev_irq_handler(void);
extern void i2c2_er_irq_handler(void);
-#include
-#define I2C_ZERO_EVENTS() { \
- i2c2_errors.irq_cnt = 0; \
- memset((void*)i2c2_errors.event_chain, 0, sizeof(i2c2_errors.event_chain)); \
- memset((void*)i2c2_errors.status_chain, 0, sizeof(i2c2_errors.status_chain)); \
- }
#endif /* USE_I2C2 */
diff --git a/sw/airborne/booz/arch/lpc21/actuators/booz_actuators_mkk_arch.h b/sw/airborne/test/test_actuators.c
similarity index 50%
rename from sw/airborne/booz/arch/lpc21/actuators/booz_actuators_mkk_arch.h
rename to sw/airborne/test/test_actuators.c
index 84a5909a4d..2dba380649 100644
--- a/sw/airborne/booz/arch/lpc21/actuators/booz_actuators_mkk_arch.h
+++ b/sw/airborne/test/test_actuators.c
@@ -21,9 +21,54 @@
* Boston, MA 02111-1307, USA.
*/
-#ifndef BOOZ_ACTUATORS_MKK_ARCH_H
-#define BOOZ_ACTUATORS_MKK_ARCH_H
-#define BoozActuatorsMkkArchSend() {}
+#include "init_hw.h"
+#include "sys_time.h"
+#include "led.h"
-#endif /* BOOZ_ACTUATORS_MKK_ARCH_H */
+#include "i2c.h"
+#include "booz/booz2_commands.h"
+#include "booz/booz_actuators.h"
+
+static inline void main_init( void );
+static inline void main_periodic_task( void );
+static inline void main_event_task( void );
+
+int main(void) {
+ main_init();
+
+ while(1) {
+ if (sys_time_periodic())
+ main_periodic_task();
+ main_event_task();
+ }
+
+ return 0;
+}
+
+static inline void main_init( void ) {
+ hw_init();
+ sys_time_init();
+ actuators_init();
+}
+
+
+
+static inline void main_periodic_task( void ) {
+
+ booz2_commands[COMMAND_ROLL]=0;
+ booz2_commands[COMMAND_PITCH]=0;
+ booz2_commands[COMMAND_YAW]=0;
+ booz2_commands[COMMAND_THRUST]=1;
+
+ actuators_set(TRUE);
+
+ LED_PERIODIC();
+
+}
+
+
+
+static inline void main_event_task( void ) {
+
+}
diff --git a/sw/airborne/booz/arch/stm32/actuators/booz_actuators_mkk_arch.h b/sw/airborne/test/test_esc_asctecv1_simple.c
similarity index 52%
rename from sw/airborne/booz/arch/stm32/actuators/booz_actuators_mkk_arch.h
rename to sw/airborne/test/test_esc_asctecv1_simple.c
index aba60f269f..2447848539 100644
--- a/sw/airborne/booz/arch/stm32/actuators/booz_actuators_mkk_arch.h
+++ b/sw/airborne/test/test_esc_asctecv1_simple.c
@@ -21,20 +21,55 @@
* Boston, MA 02111-1307, USA.
*/
-#ifndef BOOZ_ACTUATORS_MKK_ARCH_H
-#define BOOZ_ACTUATORS_MKK_ARCH_H
-#include
-#include
+#include "init_hw.h"
+#include "sys_time.h"
+#include "led.h"
+#include "i2c.h"
+static inline void main_init( void );
+static inline void main_periodic_task( void );
+static inline void main_event_task( void );
+static struct i2c_transaction trans;
-#define BoozActuatorsMkkArchSend() { \
- /*DEBUG5_T();*/ \
- TIM_SetCounter(TIM2, 0); \
- TIM_ClearITPendingBit(TIM2, TIM_IT_Update); \
- TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); \
+int main(void) {
+ main_init();
+
+ while(1) {
+ if (sys_time_periodic())
+ main_periodic_task();
+ main_event_task();
}
-#endif /* BOOZ_ACTUATORS_MKK_ARCH_H */
+ return 0;
+}
+
+static inline void main_init( void ) {
+ hw_init();
+ sys_time_init();
+}
+
+
+
+static inline void main_periodic_task( void ) {
+
+ trans.type = I2CTransTx;
+ trans.slave_addr = 0x02;
+ trans.len_w = 4;
+ trans.buf[0] = 100;
+ trans.buf[1] = 100;
+ trans.buf[2] = 100;
+ trans.buf[3] = 1;
+ i2c_submit(&i2c1,&trans);
+
+ LED_PERIODIC();
+
+}
+
+
+
+static inline void main_event_task( void ) {
+
+}
diff --git a/sw/airborne/lisa/test_mc2.c b/sw/airborne/test/test_esc_mkk_simple.c
similarity index 88%
rename from sw/airborne/lisa/test_mc2.c
rename to sw/airborne/test/test_esc_mkk_simple.c
index 259127bcb7..3011a1acdf 100644
--- a/sw/airborne/lisa/test_mc2.c
+++ b/sw/airborne/test/test_esc_mkk_simple.c
@@ -26,11 +26,13 @@
#include "sys_time.h"
#include "led.h"
+#include "i2c.h"
+
static inline void main_init( void );
static inline void main_periodic_task( void );
static inline void main_event_task( void );
-static uint8_t i2c_done;
+static struct i2c_transaction trans;
int main(void) {
main_init();
@@ -53,8 +55,11 @@ static inline void main_init( void ) {
static inline void main_periodic_task( void ) {
- i2c1_buf[0] = 0x04;
- i2c1_transmit(0x58, 1, &i2c_done);
+ trans.type = I2CTransTx;
+ trans.buf[0] = 0x04;
+ trans.len_w = 1;
+ trans.slave_addr = 0x58;
+ i2c_submit(&i2c1,&trans);
LED_PERIODIC();