From: Keith Packard Date: Mon, 13 Apr 2009 04:33:55 +0000 (-0700) Subject: Make test more complicated X-Git-Tag: sn1-flight1~26 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=55402ba3e87fd699c51079843309f1f0d1534724 Make test more complicated --- 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(); }