aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2012-03-19 14:01:34 +0000
committerDimitri Sokolyuk <demon@dim13.org>2012-03-19 14:01:34 +0000
commit203f002bfd160559e95a40a9a567dd1a4e01ac67 (patch)
tree7017d627851fd0a7c8e84e259877c0ce14e0bd78
parent45036e2f94ee8bc881b508e7957d4838d10c18a3 (diff)
replace interrupt blocking with semaphore
-rw-r--r--kernel/rgb.c8
-rw-r--r--kernel/tasks.h2
2 files changed, 5 insertions, 5 deletions
diff --git a/kernel/rgb.c b/kernel/rgb.c
index 21c7c1e..9f8093f 100644
--- a/kernel/rgb.c
+++ b/kernel/rgb.c
@@ -35,12 +35,12 @@ rgb(void *arg)
i = (i + 1) % 360;
hsv(&r, &g, &b, i, 255, v);
- cli();
+ wait(RGB);
a->r = r;
a->g = g;
a->b = b;
v = *a->v; /* 10bit to 8bit */
- sei();
+ signal(RGB);
sleep(0, 40000);
}
@@ -56,9 +56,9 @@ pwm(void *arg)
PORTB &= ~_BV(a->pin);
for (;;) {
- cli();
+ wait(RGB);
t = *a->value;
- sei();
+ signal(RGB);
/* on */
if (t) {
diff --git a/kernel/tasks.h b/kernel/tasks.h
index 26c4734..bb0023a 100644
--- a/kernel/tasks.h
+++ b/kernel/tasks.h
@@ -42,7 +42,7 @@
#endif
enum Prio { Low, High, nPrio };
-enum Sema { Display, nSema };
+enum Sema { Display, RGB, nSema };
struct rgbarg {
uint8_t r;