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