diff --git a/Makefile b/Makefile
index 9fa1de7117..6887cbc61a 100644
--- a/Makefile
+++ b/Makefile
@@ -260,7 +260,7 @@ ab_clean:
find sw/airborne -name '*~' -exec rm -f {} \;
test_all_example_airframes: replace_current_conf_xml
- for ap in `grep name conf/conf.xml.example | sed -e 's/.*name=\"//' | sed -e 's/"//'`; do echo "Making $$ap"; make -C ./ AIRCRAFT=$$ap clean_ac ap.compile || exit 1; done
+ for ap in `grep name conf/conf.xml.example | sed -e 's/.*name=\"//' | sed -e 's/".*//'`; do for airframe in `grep $$ap conf/conf.xml.example | sed -e 's/.*airframe=\"//' | sed -e 's/".*//'`; do for target in `grep target conf/$$airframe | grep name | sed -e 's/.*name=\"//' | sed -e 's/\".*//'`; do echo "Making $$ap $$target"; make -C ./ AIRCRAFT=$$ap clean_ac $$target.compile || exit 1; done; done; done
replace_current_conf_xml:
test conf/conf.xml || mv conf/conf.xml conf/conf.xml.backup.`date +%Y%m%d-%H%M%s`
diff --git a/conf/airframes/Poine/booz2_a1.xml b/conf/airframes/Poine/booz2_a1.xml
index 994704b005..4fed1a2abe 100644
--- a/conf/airframes/Poine/booz2_a1.xml
+++ b/conf/airframes/Poine/booz2_a1.xml
@@ -209,15 +209,5 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/conf/airframes/Poine/h_hex.xml b/conf/airframes/Poine/h_hex.xml
index 2026f69d02..c6c3678804 100644
--- a/conf/airframes/Poine/h_hex.xml
+++ b/conf/airframes/Poine/h_hex.xml
@@ -174,11 +174,6 @@
-
-
-
-
-
diff --git a/conf/airframes/booz2_flixr.xml b/conf/airframes/booz2_flixr.xml
index 6f381ae18c..59822b19c8 100644
--- a/conf/airframes/booz2_flixr.xml
+++ b/conf/airframes/booz2_flixr.xml
@@ -22,7 +22,7 @@
-
+
diff --git a/conf/airframes/delta_wing_minimal_example.xml b/conf/airframes/delta_wing_minimal_example.xml
index d9d1ce0dab..860c06a836 100644
--- a/conf/airframes/delta_wing_minimal_example.xml
+++ b/conf/airframes/delta_wing_minimal_example.xml
@@ -28,7 +28,6 @@
-
diff --git a/conf/airframes/easy_glider_example.xml b/conf/airframes/easy_glider_example.xml
index c5e961ff91..fb939093c5 100644
--- a/conf/airframes/easy_glider_example.xml
+++ b/conf/airframes/easy_glider_example.xml
@@ -171,7 +171,6 @@
-
diff --git a/conf/airframes/easystar_ets_example.xml b/conf/airframes/easystar_ets_example.xml
index 7fcba768ea..57159030e1 100644
--- a/conf/airframes/easystar_ets_example.xml
+++ b/conf/airframes/easystar_ets_example.xml
@@ -31,7 +31,6 @@
-
diff --git a/conf/airframes/easystar_example.xml b/conf/airframes/easystar_example.xml
index 7a8a513af7..13387ea133 100644
--- a/conf/airframes/easystar_example.xml
+++ b/conf/airframes/easystar_example.xml
@@ -30,7 +30,6 @@
-
diff --git a/conf/airframes/esden/lisa_asctec.xml b/conf/airframes/esden/lisa_asctec.xml
index 00857bc39a..261d472e02 100644
--- a/conf/airframes/esden/lisa_asctec.xml
+++ b/conf/airframes/esden/lisa_asctec.xml
@@ -225,18 +225,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/conf/airframes/flixr_discovery.xml b/conf/airframes/flixr_discovery.xml
index 36a3dd6528..cc00910de8 100644
--- a/conf/airframes/flixr_discovery.xml
+++ b/conf/airframes/flixr_discovery.xml
@@ -56,7 +56,6 @@ http://paparazzi.enac.fr/w/index.php?title=Theory_of_Operation
-
diff --git a/conf/airframes/funjet_cam_example.xml b/conf/airframes/funjet_cam_example.xml
index 3857117f77..0a0c37526d 100644
--- a/conf/airframes/funjet_cam_example.xml
+++ b/conf/airframes/funjet_cam_example.xml
@@ -36,7 +36,6 @@
-
diff --git a/conf/airframes/funjet_example.xml b/conf/airframes/funjet_example.xml
index 04a48470ca..d2cc5f4138 100644
--- a/conf/airframes/funjet_example.xml
+++ b/conf/airframes/funjet_example.xml
@@ -39,7 +39,6 @@
-
diff --git a/conf/airframes/mentor_tum.xml b/conf/airframes/mentor_tum.xml
index 3965ca9ada..7d5053dbda 100644
--- a/conf/airframes/mentor_tum.xml
+++ b/conf/airframes/mentor_tum.xml
@@ -31,7 +31,6 @@
-
diff --git a/conf/airframes/microjet_example.xml b/conf/airframes/microjet_example.xml
index 6ce9c7e8f0..12a838cb66 100644
--- a/conf/airframes/microjet_example.xml
+++ b/conf/airframes/microjet_example.xml
@@ -202,7 +202,6 @@
-
diff --git a/conf/airframes/twinjet_example.xml b/conf/airframes/twinjet_example.xml
index a4bd629534..3b476a28fa 100644
--- a/conf/airframes/twinjet_example.xml
+++ b/conf/airframes/twinjet_example.xml
@@ -33,7 +33,6 @@
-
diff --git a/conf/airframes/twinjet_overo.xml b/conf/airframes/twinjet_overo.xml
index 90a9b62cb5..c24d940e23 100644
--- a/conf/airframes/twinjet_overo.xml
+++ b/conf/airframes/twinjet_overo.xml
@@ -32,7 +32,6 @@
-
diff --git a/conf/airframes/twinstar_example.xml b/conf/airframes/twinstar_example.xml
index 09d2582cee..ffd25f8b0d 100644
--- a/conf/airframes/twinstar_example.xml
+++ b/conf/airframes/twinstar_example.xml
@@ -29,7 +29,6 @@
-
diff --git a/conf/autopilot/lisa_test_progs.makefile b/conf/autopilot/lisa_test_progs.makefile
index 52ec081125..c5043ec3d5 100644
--- a/conf/autopilot/lisa_test_progs.makefile
+++ b/conf/autopilot/lisa_test_progs.makefile
@@ -528,6 +528,7 @@ test_actuators_asctecv1.srcs = $(COMMON_TEST_SRCS)
test_actuators_asctecv1.CFLAGS += $(COMMON_TELEMETRY_CFLAGS)
test_actuators_asctecv1.srcs += $(COMMON_TELEMETRY_SRCS)
+test_actuators_asctecv1.srcs += test/test_actuators.c
test_actuators_asctecv1.srcs += $(SRC_FIRMWARE)/commands.c
test_actuators_asctecv1.CFLAGS += -DACTUATORS_ASCTEC_DEVICE=i2c1
test_actuators_asctecv1.srcs += $(SRC_FIRMWARE)/actuators/actuators_asctec.c
diff --git a/conf/autopilot/setup.makefile b/conf/autopilot/setup.makefile
index 6a95864cde..33a14d5998 100644
--- a/conf/autopilot/setup.makefile
+++ b/conf/autopilot/setup.makefile
@@ -97,11 +97,16 @@ endif
# a test program to setup actuators
ifeq ($(ARCH), lpc21)
-setup_actuators.CFLAGS += -DFBW -DUSE_LED -DSYS_TIME_LED=1
+setup_actuators.CFLAGS += -DFBW -DUSE_LED -DPERIPHERALS_AUTO_INIT
setup_actuators.CFLAGS += -DUSE_UART1 -DUART1_BAUD=B57600 -DDOWNLINK_DEVICE=Uart1 -DPPRZ_UART=Uart1
setup_actuators.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDATALINK=PPRZ
setup_actuators.CFLAGS += -DDOWNLINK_FBW_DEVICE=Uart1 -DDOWNLINK_AP_DEVICE=Uart1
setup_actuators.CFLAGS += $(SETUP_INC) -Ifirmwares/fixedwing
+ifneq ($(SYS_TIME_LED),none)
+setup_actuators.CFLAGS += -DSYS_TIME_LED=$(SYS_TIME_LED)
+endif
+setup_actuators.CFLAGS += -DPERIODIC_FREQUENCY='60'
+setup_actuators.CFLAGS += -DUSE_SYS_TIME
setup_actuators.srcs += mcu_periph/sys_time.c $(SRC_ARCH)/mcu_periph/sys_time_arch.c $(SRC_ARCH)/armVIC.c subsystems/datalink/pprz_transport.c subsystems/datalink/downlink.c $(SRC_FIRMWARE)/setup_actuators.c mcu_periph/uart.c $(SRC_ARCH)/mcu_periph/uart_arch.c firmwares/fixedwing/main.c mcu.c $(SRC_ARCH)/mcu_arch.c
else ifeq ($(TARGET),setup_actuators)
$(error setup_actuators currently only implemented for the lpc21)
diff --git a/conf/conf.xml.example b/conf/conf.xml.example
index b6fb162bc4..84058ae592 100644
--- a/conf/conf.xml.example
+++ b/conf/conf.xml.example
@@ -2,92 +2,21 @@
+
+
-
+
-
-
-
+
+
-
-
-
-
+
+
+
+
diff --git a/sw/airborne/arch/stm32/mcu_periph/i2c_arch.c b/sw/airborne/arch/stm32/mcu_periph/i2c_arch.c
index 125b7350c8..f32199b675 100644
--- a/sw/airborne/arch/stm32/mcu_periph/i2c_arch.c
+++ b/sw/airborne/arch/stm32/mcu_periph/i2c_arch.c
@@ -80,7 +80,6 @@ static inline void abort_and_reset(struct i2c_periph *p) {
end_of_transaction(p);
}
-#ifdef USE_I2C2
static inline void on_status_start_requested(struct i2c_periph *periph, struct i2c_transaction* trans, uint32_t event);
static inline void on_status_addr_wr_sent(struct i2c_periph *periph, struct i2c_transaction* trans, uint32_t event);
static inline void on_status_sending_byte(struct i2c_periph *periph, struct i2c_transaction* trans, uint32_t event);
@@ -439,7 +438,7 @@ static inline void i2c_reset_init(struct i2c_periph *p)
// enable error interrupts
I2C_ITConfig(p->reg_addr, I2C_IT_ERR, ENABLE);
}
-#endif /* USE_I2C2 */
+
#ifdef USE_I2C1
diff --git a/sw/airborne/boards/booz/test_baro.c b/sw/airborne/boards/booz/test_baro.c
index 32ffe4f672..5b179ff240 100644
--- a/sw/airborne/boards/booz/test_baro.c
+++ b/sw/airborne/boards/booz/test_baro.c
@@ -47,7 +47,7 @@ int main(void) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
main_event_task();
}
@@ -57,7 +57,7 @@ int main(void) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
booz2_analog_init();
baro_init();
mcu_int_enable();
diff --git a/sw/airborne/boards/lisa_l/test_baro.c b/sw/airborne/boards/lisa_l/test_baro.c
index 9808020358..6dad99c825 100644
--- a/sw/airborne/boards/lisa_l/test_baro.c
+++ b/sw/airborne/boards/lisa_l/test_baro.c
@@ -33,6 +33,8 @@
#include "mcu_periph/sys_time.h"
#include "mcu_periph/uart.h"
+#include "led.h"
+
#include "subsystems/datalink/downlink.h"
#include "subsystems/sensors/baro.h"
@@ -50,7 +52,7 @@ int main(void) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
main_event_task();
}
@@ -60,7 +62,7 @@ int main(void) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
baro_init();
// DEBUG_SERVO1_INIT();
diff --git a/sw/airborne/booz/test/booz2_test_buss_bldc_hexa.c b/sw/airborne/booz/test/booz2_test_buss_bldc_hexa.c
index d1fdbeed2e..b90dcbe32d 100644
--- a/sw/airborne/booz/test/booz2_test_buss_bldc_hexa.c
+++ b/sw/airborne/booz/test/booz2_test_buss_bldc_hexa.c
@@ -51,7 +51,7 @@ static inline void main_event_task( void );
int main( void ) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
main_event_task();
}
@@ -60,7 +60,7 @@ int main( void ) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
mcu_int_enable();
}
diff --git a/sw/airborne/booz/test/booz2_test_crista.c b/sw/airborne/booz/test/booz2_test_crista.c
index 05cc0a0895..08f831ed05 100644
--- a/sw/airborne/booz/test/booz2_test_crista.c
+++ b/sw/airborne/booz/test/booz2_test_crista.c
@@ -45,7 +45,7 @@ static inline void on_imu_event(void);
int main( void ) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
main_event_task();
}
@@ -54,7 +54,7 @@ int main( void ) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
led_init();
/* LED_ON(4); */
diff --git a/sw/airborne/booz/test/booz2_test_gps.c b/sw/airborne/booz/test/booz2_test_gps.c
index 13a3f75067..3ca4cacd46 100644
--- a/sw/airborne/booz/test/booz2_test_gps.c
+++ b/sw/airborne/booz/test/booz2_test_gps.c
@@ -39,7 +39,7 @@ static void on_gps_sol(void);
int main( void ) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
main_event_task();
}
@@ -48,7 +48,7 @@ int main( void ) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
led_init();
gps_init();
mcu_int_enable();
diff --git a/sw/airborne/booz/test/booz2_test_max1168.c b/sw/airborne/booz/test/booz2_test_max1168.c
index 5e12c79ee1..8e3ec2e42f 100644
--- a/sw/airborne/booz/test/booz2_test_max1168.c
+++ b/sw/airborne/booz/test/booz2_test_max1168.c
@@ -48,7 +48,7 @@ static void SSP_ISR(void) __attribute__((naked));
int main( void ) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
main_event_task();
}
@@ -57,7 +57,7 @@ int main( void ) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
main_init_ssp();
max1168_init();
diff --git a/sw/airborne/booz/test/booz2_test_micromag.c b/sw/airborne/booz/test/booz2_test_micromag.c
index ef97368aeb..b5c32c13c8 100644
--- a/sw/airborne/booz/test/booz2_test_micromag.c
+++ b/sw/airborne/booz/test/booz2_test_micromag.c
@@ -50,7 +50,7 @@ static void SSP_ISR(void) __attribute__((naked));
int main( void ) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
main_event_task();
}
@@ -59,7 +59,7 @@ int main( void ) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
led_init();
uart1_init_tx();
diff --git a/sw/airborne/booz/test/booz2_test_usb.c b/sw/airborne/booz/test/booz2_test_usb.c
index 46d61ddf50..fc6c382eda 100644
--- a/sw/airborne/booz/test/booz2_test_usb.c
+++ b/sw/airborne/booz/test/booz2_test_usb.c
@@ -43,7 +43,7 @@ static inline void main_event_task( void );
int main( void ) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
main_event_task();
}
@@ -52,7 +52,7 @@ int main( void ) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
led_init();
VCOM_init();
diff --git a/sw/airborne/csc/csc_ap_main.c b/sw/airborne/csc/csc_ap_main.c
index a9eb52e7df..99dc808be4 100644
--- a/sw/airborne/csc/csc_ap_main.c
+++ b/sw/airborne/csc/csc_ap_main.c
@@ -142,7 +142,7 @@ static void on_gpspos_cmd( struct CscGPSPosMsg *msg )
static void csc_main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
led_init();
Uart0Init();
@@ -213,7 +213,7 @@ static void csc_main_event( void )
int main( void ) {
csc_main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
csc_main_periodic();
csc_main_event();
}
diff --git a/sw/airborne/csc/csc_main.c b/sw/airborne/csc/csc_main.c
index f335b753fa..3d7d6eb517 100644
--- a/sw/airborne/csc/csc_main.c
+++ b/sw/airborne/csc/csc_main.c
@@ -67,7 +67,7 @@ struct NedCoor_i booz_ins_gps_speed_cm_s_ned;
static void csc_main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
led_init();
#ifdef USE_UART0
@@ -219,7 +219,7 @@ static inline void on_motor_cmd(struct CscMotorMsg *msg)
int main( void ) {
csc_main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
csc_main_periodic();
csc_main_event();
}
diff --git a/sw/airborne/csc/mercury_csc_main.c b/sw/airborne/csc/mercury_csc_main.c
index df97ffb98d..e730a0325e 100644
--- a/sw/airborne/csc/mercury_csc_main.c
+++ b/sw/airborne/csc/mercury_csc_main.c
@@ -81,7 +81,7 @@ static uint32_t can_msg_count = 0;
static void csc_main_init( void ) {
hw_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
led_init();
actuators_init();
@@ -252,7 +252,7 @@ int main( void ) {
csc_main_init();
// Uart0PrintString("Hello");
while(1) {
- if (sys_time_periodic()) {
+ if (sys_time_check_and_ack_timer(0)) {
csc_main_periodic();
}
csc_main_event();
diff --git a/sw/airborne/csc/mercury_main.c b/sw/airborne/csc/mercury_main.c
index aae1354a52..0b9d6e41e8 100644
--- a/sw/airborne/csc/mercury_main.c
+++ b/sw/airborne/csc/mercury_main.c
@@ -74,7 +74,7 @@ static inline void csc_main_event( void );
int main( void ) {
csc_main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
csc_main_periodic();
csc_main_event();
}
@@ -106,7 +106,7 @@ static void on_rc_cmd(struct CscRCMsg *msg)
static inline void csc_main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
led_init();
Uart0Init();
diff --git a/sw/airborne/csc/ppm_bridge_main.c b/sw/airborne/csc/ppm_bridge_main.c
index c35f615c49..e8e9398bff 100644
--- a/sw/airborne/csc/ppm_bridge_main.c
+++ b/sw/airborne/csc/ppm_bridge_main.c
@@ -53,7 +53,7 @@ static uint16_t cpu_time = 0;
static void csc_main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
led_init();
Uart0Init();
@@ -123,7 +123,7 @@ static void csc_main_event( void )
int main( void ) {
csc_main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
csc_main_periodic();
csc_main_event();
}
diff --git a/sw/airborne/firmwares/beth/main_beth.c b/sw/airborne/firmwares/beth/main_beth.c
index 4ae748aa4a..4f1ff6ae6f 100644
--- a/sw/airborne/firmwares/beth/main_beth.c
+++ b/sw/airborne/firmwares/beth/main_beth.c
@@ -17,7 +17,7 @@ static inline void main_on_bench_sensors( void );
int main( void ) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
}
return 0;
@@ -25,7 +25,7 @@ int main( void ) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
mcu_int_enable();
}
diff --git a/sw/airborne/firmwares/beth/main_coders.c b/sw/airborne/firmwares/beth/main_coders.c
index bf615dc328..eb086428ab 100644
--- a/sw/airborne/firmwares/beth/main_coders.c
+++ b/sw/airborne/firmwares/beth/main_coders.c
@@ -64,7 +64,7 @@ int main(void) {
servos[3] = 4;
while (1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic();
main_event();
}
@@ -74,7 +74,7 @@ int main(void) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
main_init_adc();
bench_sensors_init();
mcu_int_enable();
diff --git a/sw/airborne/firmwares/beth/main_stm32.c b/sw/airborne/firmwares/beth/main_stm32.c
index 5fb4667990..af702db5ee 100644
--- a/sw/airborne/firmwares/beth/main_stm32.c
+++ b/sw/airborne/firmwares/beth/main_stm32.c
@@ -54,7 +54,7 @@ int main(void) {
main_init();
while (1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic();
main_event();
}
@@ -63,7 +63,7 @@ int main(void) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
actuators_init();
//radio_control_init();
imu_init();
diff --git a/sw/airborne/firmwares/motor_bench/turntable_systime.c b/sw/airborne/firmwares/motor_bench/turntable_systime.c
index 75872fc9e5..193cfec2e0 100644
--- a/sw/airborne/firmwares/motor_bench/turntable_systime.c
+++ b/sw/airborne/firmwares/motor_bench/turntable_systime.c
@@ -22,6 +22,9 @@ void sys_time_arch_init( void ) {
/* enable timer 0 */
T0TCR = TCR_ENABLE;
+ /* set first sys tick interrupt */
+ T0MR0 = SYS_TIME_RESOLUTION_CPU_TICKS;
+
/* select TIMER0 as IRQ */
VICIntSelect &= ~VIC_BIT(VIC_TIMER0);
/* enable TIMER0 interrupt */
@@ -30,9 +33,6 @@ void sys_time_arch_init( void ) {
_VIC_CNTL(TIMER0_VIC_SLOT) = VIC_ENABLE | VIC_TIMER0;
/* address of the ISR */
_VIC_ADDR(TIMER0_VIC_SLOT) = (uint32_t)TIMER0_ISR;
-
- /* set first sys tick interrupt */
- T0MR1 = SYS_TIME_RESOLUTION_CPU_TICKS;
}
static inline void sys_tick_irq_handler(void) {
diff --git a/sw/airborne/firmwares/setup/setup_actuators.c b/sw/airborne/firmwares/setup/setup_actuators.c
index 9c7bf5b7b2..f758a1d1dd 100644
--- a/sw/airborne/firmwares/setup/setup_actuators.c
+++ b/sw/airborne/firmwares/setup/setup_actuators.c
@@ -7,12 +7,12 @@
#include "generated/airframe.h"
#define DATALINK_C
#include "subsystems/datalink/datalink.h"
-#include "mcu_periph/uart.h"
#include "subsystems/datalink/pprz_transport.h"
-#include "firmwares/fixedwing/main_fbw.h"
+#include "mcu_periph/uart.h"
#include "subsystems/datalink/downlink.h"
-#include "generated/settings.h"
+#include "firmwares/fixedwing/main_fbw.h"
+#include "generated/settings.h"
#define IdOfMsg(x) (x[1])
@@ -44,14 +44,9 @@ void dl_parse_msg( void ) {
#endif
}
-#define PprzUartInit() Link(Init())
void init_fbw( void ) {
mcu_init();
- sys_time_init();
- led_init();
-
- PprzUartInit();
actuators_init();
@@ -62,9 +57,18 @@ void init_fbw( void ) {
// SetServo(SERVO_GAZ, SERVO_GAZ_MIN);
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
+
mcu_int_enable();
}
+void handle_periodic_tasks_fbw(void) {
+
+ if (sys_time_check_and_ack_timer(0))
+ periodic_task_fbw();
+
+}
+
void periodic_task_fbw(void) {
/* static float t; */
/* t += 1./60.; */
@@ -76,16 +80,5 @@ void periodic_task_fbw(void) {
}
void event_task_fbw(void) {
- if (PprzBuffer()) {
- ReadPprzBuffer();
- }
- if (pprz_msg_received) {
- pprz_msg_received = FALSE;
- pprz_parse_payload();
- LED_TOGGLE(3);
- }
- if (dl_msg_available) {
- dl_parse_msg();
- dl_msg_available = FALSE;
- }
+ DatalinkEvent();
}
diff --git a/sw/airborne/firmwares/wind_tunnel/main.c b/sw/airborne/firmwares/wind_tunnel/main.c
index 936c5b1a44..30bd9f0c19 100644
--- a/sw/airborne/firmwares/wind_tunnel/main.c
+++ b/sw/airborne/firmwares/wind_tunnel/main.c
@@ -30,7 +30,7 @@ uint16_t datalink_time;
int main( void ) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
main_event_task( );
}
@@ -39,7 +39,7 @@ int main( void ) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
led_init();
uart0_init();
diff --git a/sw/airborne/firmwares/wind_tunnel/main_mb.c b/sw/airborne/firmwares/wind_tunnel/main_mb.c
index 7c1830154f..75354cc7b0 100644
--- a/sw/airborne/firmwares/wind_tunnel/main_mb.c
+++ b/sw/airborne/firmwares/wind_tunnel/main_mb.c
@@ -29,7 +29,7 @@ uint16_t datalink_time;
int main( void ) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
main_event_task( );
}
@@ -38,7 +38,7 @@ int main( void ) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
led_init();
uart0_init();
diff --git a/sw/airborne/fms/lpc_test_spi.c b/sw/airborne/fms/lpc_test_spi.c
index 481fa3505c..2b4b90fedf 100644
--- a/sw/airborne/fms/lpc_test_spi.c
+++ b/sw/airborne/fms/lpc_test_spi.c
@@ -42,7 +42,7 @@ static void SPI0_ISR(void) __attribute__((naked));
int main( void ) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
main_event_task();
}
@@ -51,7 +51,7 @@ int main( void ) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
main_spi_init();
mcu_int_enable();
}
diff --git a/sw/airborne/sd_card/main.c b/sw/airborne/sd_card/main.c
index 2c7d130d2e..25342b9d7d 100644
--- a/sw/airborne/sd_card/main.c
+++ b/sw/airborne/sd_card/main.c
@@ -26,7 +26,7 @@ uint16_t datalink_time;
int main( void ) {
main_init();
while(1) {
- if (sys_time_periodic())
+ if (sys_time_check_and_ack_timer(0))
main_periodic_task();
main_event_task( );
}
@@ -35,7 +35,7 @@ int main( void ) {
static inline void main_init( void ) {
mcu_init();
- sys_time_init();
+ sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
led_init();
Uart0Init();
diff --git a/sw/airborne/subsystems/imu.c b/sw/airborne/subsystems/imu.c
index bfd6dec21b..e0daca2ddd 100644
--- a/sw/airborne/subsystems/imu.c
+++ b/sw/airborne/subsystems/imu.c
@@ -39,7 +39,7 @@ void imu_init(void) {
#if defined IMU_MAG_X_NEUTRAL && defined IMU_MAG_Y_NEUTRAL && defined IMU_MAG_Z_NEUTRAL
VECT3_ASSIGN(imu.mag_neutral, IMU_MAG_X_NEUTRAL, IMU_MAG_Y_NEUTRAL, IMU_MAG_Z_NEUTRAL);
#else
-#warning Info: Magnetomter neutrals are set to zero.
+#pragma message "Info: Magnetomter neutrals are set to zero."
INT_VECT3_ZERO(imu.mag_neutral);
#endif