altos/cc1111: Wake up non-ADC sensor code each timer tick
[fw/altos] / src / cc1111 / ao_timer.c
index 602f98c8276720c047751d95baff9c4fd14fbecc..54af9605b59bb997fa75b89508bb45e41f06e8d8 100644 (file)
@@ -24,16 +24,6 @@ uint16_t ao_time(void) __critical
        return ao_tick_count;
 }
 
-static __xdata uint8_t ao_forever;
-
-void
-ao_delay(uint16_t ticks)
-{
-       ao_alarm(ticks);
-       ao_sleep(&ao_forever);
-       ao_clear_alarm();
-}
-
 #define T1_CLOCK_DIVISOR       8       /* 24e6/8 = 3e6 */
 #define T1_SAMPLE_TIME         30000   /* 3e6/30000 = 100 */
 
@@ -49,6 +39,9 @@ void ao_timer_isr(void) __interrupt 9
        if (++ao_adc_count == ao_adc_interval) {
                ao_adc_count = 0;
                ao_adc_poll();
+#if (AO_DATA_ALL & ~(AO_DATA_ADC))
+               ao_wakeup(DATA_TO_XDATA(&ao_adc_count));
+#endif
        }
 #endif
 }