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 */