projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos/stm32l: Add support for software-driven HW flow control
[fw/altos]
/
src
/
stm
/
ao_timer.c
diff --git
a/src/stm/ao_timer.c
b/src/stm/ao_timer.c
index 34f9edb90b084d40b5fbee14cdca7d313a03d30c..91ede84bcc5ee7f4e015fb46b6188412c35b6746 100644
(file)
--- a/
src/stm/ao_timer.c
+++ b/
src/stm/ao_timer.c
@@
-17,6
+17,9
@@
#include "ao.h"
#include <ao_task.h>
#include "ao.h"
#include <ao_task.h>
+#if HAS_FAKE_FLIGHT
+#include <ao_fake_flight.h>
+#endif
#ifndef HAS_TICK
#define HAS_TICK 1
#ifndef HAS_TICK
#define HAS_TICK 1
@@
-38,6
+41,7
@@
volatile __data uint8_t ao_data_count;
void stm_systick_isr(void)
{
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
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;
#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
}
#if (AO_DATA_ALL & ~(AO_DATA_ADC))
ao_wakeup((void *) &ao_data_count);
#endif
}
+#endif
+#ifdef AO_TIMER_HOOK
+ AO_TIMER_HOOK;
#endif
}
}
#endif
}
}