aboutsummaryrefslogtreecommitdiff
path: root/kernel/dmx.c
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2011-07-12 00:54:33 +0000
committerDimitri Sokolyuk <demon@dim13.org>2011-07-12 00:54:33 +0000
commitb4a9b392c57ca8b3f740dd3035b1f43b4ad583b4 (patch)
treeeeda7f987ad9abf16a5954ce250dc51cf0b1ac41 /kernel/dmx.c
parent42a1324ba256967ca11fa1a81ef3d2ac3d10c491 (diff)
add clock, redesign timer, tweak stack values
Diffstat (limited to 'kernel/dmx.c')
-rw-r--r--kernel/dmx.c34
1 files changed, 23 insertions, 11 deletions
diff --git a/kernel/dmx.c b/kernel/dmx.c
index 412db9b..7b17e6a 100644
--- a/kernel/dmx.c
+++ b/kernel/dmx.c
@@ -20,30 +20,42 @@
#include "kernel.h"
#include "tasks.h"
+/* globals */
uint8_t red, green, blue;
-
struct rgbarg rgbargs = { &red, &green, &blue };
struct pwmarg pwmargs[] = {
{ &red, PB2 },
{ &green, PB3 },
{ &blue, PB4 }
};
+struct lcdarg lcdarg;
+struct clockarg clockarg;
+struct ctrlarg ctrlarg = { &lcdarg, &clockarg };
int
main()
{
- init(STACK);
+ init(36);
+#if 0
semaphore(0, 1);
-
- task(heartbeat, STACK, USEC(0), MSEC(750), 0);
- task(rgb, STACK, USEC(10), MSEC(10), &rgbargs);
- task(pwm, STACK, USEC(20), USEC(2500), &pwmargs[0]);
- task(pwm, STACK, USEC(30), USEC(2500), &pwmargs[1]);
- task(pwm, STACK, USEC(50), USEC(2500), &pwmargs[2]);
- task(cmd, STACK, USEC(70), MSEC(10), &rgbargs);
-
- for (;;);
+#endif
+ task(heartbeat, STACK, 0);
+
+ task(rgb, STACK + 8, &rgbargs);
+ task(pwm, STACK, &pwmargs[0]);
+ task(pwm, STACK, &pwmargs[1]);
+ task(pwm, STACK, &pwmargs[2]);
+#if 0
+ task(cmd, STACK, &rgbargs);
+#endif
+#if 1
+ task(lcd, STACK, &lcdarg);
+ task(clock, STACK, &clockarg);
+ task(ctrl, STACK, &ctrlarg);
+#endif
+
+ for (;;); /* idle task */
return 0;
}