summaryrefslogtreecommitdiff
path: root/src/stm/ao_timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stm/ao_timer.c')
-rw-r--r--src/stm/ao_timer.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/stm/ao_timer.c b/src/stm/ao_timer.c
index f3011d3f..d69035f8 100644
--- a/src/stm/ao_timer.c
+++ b/src/stm/ao_timer.c
@@ -16,6 +16,7 @@
*/
#include "ao.h"
+#include <ao_task.h>
volatile __data AO_TICK_TYPE ao_tick_count;
@@ -42,6 +43,9 @@ void stm_tim6_isr(void)
if (stm_tim6.sr & (1 << STM_TIM67_SR_UIF)) {
stm_tim6.sr = 0;
++ao_tick_count;
+#if HAS_TASK_QUEUE
+ ao_task_check_alarm((uint16_t) ao_tick_count);
+#endif
#if AO_DATA_ALL
if (++ao_data_count == ao_data_interval) {
ao_data_count = 0;
@@ -56,10 +60,12 @@ void stm_tim6_isr(void)
#if HAS_ADC
void
-ao_timer_set_adc_interval(uint8_t interval) __critical
+ao_timer_set_adc_interval(uint8_t interval)
{
- ao_data_interval = interval;
- ao_data_count = 0;
+ ao_arch_critical(
+ ao_data_interval = interval;
+ ao_data_count = 0;
+ );
}
#endif