altos/stm: remove ao_dma_abort
[fw/altos] / src / stm / ao_timer.c
index 34f9edb90b084d40b5fbee14cdca7d313a03d30c..91ede84bcc5ee7f4e015fb46b6188412c35b6746 100644 (file)
@@ -17,6 +17,9 @@
 
 #include "ao.h"
 #include <ao_task.h>
+#if HAS_FAKE_FLIGHT
+#include <ao_fake_flight.h>
+#endif
 
 #ifndef HAS_TICK
 #define HAS_TICK 1
@@ -38,6 +41,7 @@ volatile __data uint8_t       ao_data_count;
 
 void stm_systick_isr(void)
 {
+       ao_validate_cur_stack();
        if (stm_systick.csr & (1 << STM_SYSTICK_CSR_COUNTFLAG)) {
                ++ao_tick_count;
 #if HAS_TASK_QUEUE
@@ -47,11 +51,19 @@ void stm_systick_isr(void)
 #if AO_DATA_ALL
                if (++ao_data_count == ao_data_interval) {
                        ao_data_count = 0;
-                       ao_adc_poll();
+#if HAS_FAKE_FLIGHT
+                       if (ao_fake_flight_active)
+                               ao_fake_flight_poll();
+                       else
+#endif
+                               ao_adc_poll();
 #if (AO_DATA_ALL & ~(AO_DATA_ADC))
                        ao_wakeup((void *) &ao_data_count);
 #endif
                }
+#endif
+#ifdef AO_TIMER_HOOK
+               AO_TIMER_HOOK;
 #endif
        }
 }