From 55402ba3e87fd699c51079843309f1f0d1534724 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 12 Apr 2009 21:33:55 -0700 Subject: [PATCH] Make test more complicated --- ao_test.c | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/ao_test.c b/ao_test.c index 8852308e..553e5f6d 100644 --- a/ao_test.c +++ b/ao_test.c @@ -18,20 +18,44 @@ #include "ao.h" -struct ao_task __xdata blink_task; +struct ao_task __xdata blink_0_task; +struct ao_task __xdata blink_1_task; +struct ao_task __xdata wakeup_task; void delay(int n) __reentrant { - while (n--) - ao_yield(); + uint8_t j = 0; + while (--n) + while (--j) + ao_yield(); +} + +static __xdata uint8_t blink_chan; + +void +blink_0(void) +{ + for (;;) { + P1 ^= 1; + ao_sleep(&blink_chan); + } } void -blink(void) +blink_1(void) { for (;;) { P1 ^= 2; - delay(100); + delay(20); + } +} + +void +wakeup(void) +{ + for (;;) { + delay(10); + ao_wakeup(&blink_chan); } } @@ -39,9 +63,11 @@ void main(void) { CLKCON = 0; - /* Set p1_1 to output */ - P1DIR = 0x02; + /* Set p1_1 and p1_0 to output */ + P1DIR = 0x03; - ao_add_task(&blink_task, blink); + ao_add_task(&blink_0_task, blink_0); + ao_add_task(&blink_1_task, blink_1); + ao_add_task(&wakeup_task, wakeup); ao_start_scheduler(); } -- 2.30.2