Speed up dbg port bit frobbing
[fw/altos] / ao_timer.c
index 2bd47af1417dd9de3d4090bbc9200e4475110407..716befe658f567acd06f14dfd4f1b0503c007bef 100644 (file)
@@ -21,7 +21,7 @@ static volatile __data uint16_t ao_tick_count;
 
 uint16_t ao_time(void)
 {
-       __data uint16_t ret;
+       uint16_t ret;
        __critical {
                ret = ao_tick_count;
        }
@@ -40,8 +40,8 @@ ao_delay(uint16_t ticks)
 #define T1_CLOCK_DIVISOR       8       /* 24e6/8 = 3e6 */
 #define T1_SAMPLE_TIME         30000   /* 3e6/30000 = 100 */
 
-__data uint8_t ao_adc_interval = 1;
-__data uint8_t ao_adc_count;
+volatile __data uint8_t        ao_adc_interval = 1;
+volatile __data uint8_t        ao_adc_count;
 
 void ao_timer_isr(void) interrupt 9
 {
@@ -53,6 +53,12 @@ void ao_timer_isr(void) interrupt 9
        ao_wakeup(DATA_TO_XDATA(&ao_tick_count));
 }
 
+void
+ao_timer_set_adc_interval(uint8_t interval) __critical
+{
+       ao_adc_interval = interval;
+}
+
 void
 ao_timer_init(void)
 {
@@ -63,7 +69,7 @@ ao_timer_init(void)
 
        /* set the sample rate */
        T1CC0H = T1_SAMPLE_TIME >> 8;
-       T1CC0L = T1_SAMPLE_TIME;
+       T1CC0L = (uint8_t) T1_SAMPLE_TIME;
 
        T1CCTL0 = T1CCTL_MODE_COMPARE;
        T1CCTL1 = 0;