projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Fix ao_delay function and move from per-chip code to ao_task.c
[fw/altos]
/
src
/
core
/
ao_task.c
diff --git
a/src/core/ao_task.c
b/src/core/ao_task.c
index 4593bd790c4717586d258489749212d5cf4a5aae..65654731aeaeaccc9f45477e156ffa1419d13c0b 100644
(file)
--- a/
src/core/ao_task.c
+++ b/
src/core/ao_task.c
@@
-125,6
+125,7
@@
ao_sleep(__xdata void *wchan)
ao_yield();
if (ao_cur_task->wchan) {
ao_cur_task->wchan = NULL;
ao_yield();
if (ao_cur_task->wchan) {
ao_cur_task->wchan = NULL;
+ ao_cur_task->alarm = 0;
return 1;
}
return 0;
return 1;
}
return 0;
@@
-157,6
+158,16
@@
ao_clear_alarm(void)
ao_cur_task->alarm = 0;
}
ao_cur_task->alarm = 0;
}
+static __xdata uint8_t ao_forever;
+
+void
+ao_delay(uint16_t ticks)
+{
+ ao_alarm(ticks);
+ ao_sleep(&ao_forever);
+ ao_clear_alarm();
+}
+
void
ao_exit(void)
{
void
ao_exit(void)
{