diff --git a/conf/airframes/Poine/booz2_a1.xml b/conf/airframes/Poine/booz2_a1.xml
index a2a56a4355..c372dd18bd 100644
--- a/conf/airframes/Poine/booz2_a1.xml
+++ b/conf/airframes/Poine/booz2_a1.xml
@@ -203,18 +203,18 @@
-
-
+
-
-
-
-
+
+
+
+
+
diff --git a/conf/autopilot/booz_test_progs.makefile b/conf/autopilot/booz_test_progs.makefile
index d5147cb3c0..b626d30e84 100644
--- a/conf/autopilot/booz_test_progs.makefile
+++ b/conf/autopilot/booz_test_progs.makefile
@@ -163,4 +163,36 @@ test_rc_ppm.CFLAGS += -DRADIO_CONTROL_TYPE_H=\"radio_control/booz_radio_control_
test_rc_ppm.CFLAGS += -DRADIO_CONTROL_TYPE_PPM
test_rc_ppm.srcs += $(SRC_BOOZ)/booz_radio_control.c \
$(SRC_BOOZ)/radio_control/booz_radio_control_ppm.c \
- $(SRC_BOOZ_ARCH)/radio_control/booz_radio_control_ppm_arch.c
\ No newline at end of file
+ $(SRC_BOOZ_ARCH)/radio_control/booz_radio_control_ppm_arch.c
+
+
+#
+# test actuators mkk
+#
+test_actuators_mkk.ARCHDIR = $(ARCHI)
+test_actuators_mkk.ARCH = arm7tdmi
+test_actuators_mkk.TARGET = test_actuators_mkk
+test_actuators_mkk.TARGETDIR = test_actuators_mkk
+test_actuators_mkk.CFLAGS = -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)/armVIC.c
+
+test_actuators_mkk.CFLAGS += -DUSE_LED
+
+test_actuators_mkk.CFLAGS += -DUSE_SYS_TIME -DSYS_TIME_LED=$(SYS_TIME_LED)
+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_$(MODEM_PORT) -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD)
+test_actuators_mkk.srcs += $(SRC_ARCH)/uart_hw.c
+
+test_actuators_mkk.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=$(MODEM_PORT)
+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=i2c0
+test_actuators_mkk.srcs += $(SRC_BOOZ)/actuators/booz_supervision.c
+test_actuators_mkk.CFLAGS += -DUSE_I2C0
+test_actuators_mkk.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c
\ No newline at end of file
diff --git a/sw/airborne/booz/peripherals/booz_ami601.c b/sw/airborne/booz/peripherals/booz_ami601.c
index 04a308b335..9249b97c3f 100644
--- a/sw/airborne/booz/peripherals/booz_ami601.c
+++ b/sw/airborne/booz/peripherals/booz_ami601.c
@@ -15,7 +15,7 @@ void ami601_init( void ) {
for (i=0; i< AMI601_NB_CHAN; i++) {
ami601_values[i] = 0;
}
- ami601_i2c_done = TRUE;
+ ami601_i2c_trans.status = I2CTransSuccess;
ami601_nb_err = 0;
ami601_status = AMI601_IDLE;
@@ -27,11 +27,13 @@ void ami601_read( void ) {
ami601_nb_err++;
}
else {
- ami601_i2c_done = FALSE;
ami601_status = AMI601_SENDING_REQ;
- i2c1_buf[0] = 0x55;
- i2c1_buf[1] = 0xAA;
- i2c1_buf[2] = 0x14;
- i2c1_transmit(AMI601_SLAVE_ADDR, 3, &ami601_i2c_done);
+ ami601_i2c_trans.type = I2CTransTx;
+ ami601_i2c_trans.len_w = 3;
+ ami601_i2c_trans.slave_addr = AMI601_SLAVE_ADDR;
+ ami601_i2c_trans.buf[0] = 0x55;
+ ami601_i2c_trans.buf[1] = 0xAA;
+ ami601_i2c_trans.buf[2] = 0x14;
+ i2c_submit(&i2c1, &ami601_i2c_trans);
}
}
diff --git a/sw/airborne/booz/peripherals/booz_ami601.h b/sw/airborne/booz/peripherals/booz_ami601.h
index 11ac5e9695..a83529bbbd 100644
--- a/sw/airborne/booz/peripherals/booz_ami601.h
+++ b/sw/airborne/booz/peripherals/booz_ami601.h
@@ -36,7 +36,7 @@ extern volatile uint32_t ami601_nb_err;
#define AMI601Event(_handler) { \
switch (ami601_status) { \
case AMI601_SENDING_REQ : \
- if ( ami601_i2c_done ) { \
+ if ( ami601_i2c_trans.status == I2CTransSuccess ) { \
/* trigger delay for measurement */ \
T0MR1 = T0TC + SYS_TICS_OF_USEC(12288); \
/* clear match 1 interrupt */ \
@@ -47,14 +47,14 @@ extern volatile uint32_t ami601_nb_err;
} \
break; \
case AMI601_READING_MEASURE : \
- if ( ami601_i2c_done ) { \
- ami601_foo1 = i2c1_buf[0]; /* AA ? */ \
- ami601_foo2 = i2c1_buf[1]; /* 55 ? */ \
- ami601_foo3 = i2c1_buf[2]; /* ERR ? */ \
+ if ( ami601_i2c_trans.status == I2CTransSuccess ) { \
+ ami601_foo1 = ami601_i2c_trans.buf[0]; /* AA ? */ \
+ ami601_foo2 = ami601_i2c_trans.buf[1]; /* 55 ? */ \
+ ami601_foo3 = ami601_i2c_trans.buf[2]; /* ERR ? */ \
uint8_t i; \
for (i=0; i< AMI601_NB_CHAN; i++) { \
- ami601_values[i] = i2c1_buf[3 + 2 * i]; \
- ami601_values[i] += i2c1_buf[3 + 2 * i + 1] * 256; \
+ ami601_values[i] = ami601_i2c_trans.buf[3 + 2 * i]; \
+ ami601_values[i] += ami601_i2c_trans.buf[3 + 2 * i + 1] * 256; \
} \
ami601_status = AMI601_DATA_AVAILABLE; \
_handler(); \
@@ -67,9 +67,11 @@ extern volatile uint32_t ami601_nb_err;
#define AMI601_IT TIR_MR1I
#define AMI601_ISR() AMI601ReadMeasure()
#define AMI601ReadMeasure() { \
- ami601_i2c_done = FALSE; \
ami601_status = AMI601_READING_MEASURE; \
- i2c1_receive(AMI601_SLAVE_ADDR, 15, &ami601_i2c_done); \
+ ami601_i2c_trans.type = I2CTransRx; \
+ ami601_i2c_trans.len_r = 15; \
+ ami601_i2c_trans.slave_addr = AMI601_SLAVE_ADDR; \
+ i2c_submit(&i2c1, &ami601_i2c_trans); \
}
#endif /* AMI601_H */