summaryrefslogtreecommitdiff
path: root/ao.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2009-04-12 22:52:47 -0700
committerKeith Packard <keithp@keithp.com>2009-04-12 22:52:47 -0700
commit823f4f92de0c1f8dd7a644a8e56ffe9822bee6e2 (patch)
treec376e7e76989b77ae63a5f8a9c60ad592b697b10 /ao.h
parent650a77e209dbb54c8d8fd9824cee430985564973 (diff)
Add 100Hz timer
Use Timer 1 to generate a 100Hz timer interrupt
Diffstat (limited to 'ao.h')
-rw-r--r--ao.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/ao.h b/ao.h
index 4fd368c0..2d434134 100644
--- a/ao.h
+++ b/ao.h
@@ -22,7 +22,9 @@
#include <stdio.h>
#include "cc1111.h"
-#define AO_STACK_START 0x11
+#define DATA_TO_XDATA(a) ((void __xdata *) ((uint8_t) (a) | 0xff00))
+
+#define AO_STACK_START 0x21
#define AO_STACK_END 0xfe
#define AO_STACK_SIZE (AO_STACK_END - AO_STACK_START + 1)
@@ -36,6 +38,10 @@ struct ao_task {
#define AO_ERROR_NO_TASK 1
+#define ao_interrupt_disable() (EA = 0)
+#define ao_interrupt_enable() (EA = 1)
+
+/* ao_task.c */
int ao_sleep(__xdata void *wchan);
int ao_wakeup(__xdata void *wchan);
void ao_add_task(__xdata struct ao_task * task, void (*start)(void));
@@ -43,4 +49,13 @@ void ao_start_scheduler(void);
void ao_yield(void) _naked;
void ao_panic(uint8_t reason);
+/* ao_timer.c */
+
+volatile __data uint16_t ao_time;
+
+void ao_timer_isr(void) interrupt 9;
+void ao_timer_init(void);
+uint16_t ao_time_atomic(void);
+void ao_delay(uint16_t ticks);
+
#endif /* _AO_H_ */