aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2012-03-16 15:04:34 +0000
committerDimitri Sokolyuk <demon@dim13.org>2012-03-16 15:04:34 +0000
commit82527e5a81875f40b14749cc7ed103874e928d8c (patch)
tree4e68cfe38fed48c0e36406c6c955bf388036dc45
parent068a3ce53eae4be94377e3e57cdc8a6b4e3c2916 (diff)
named semaphores and priorities, don't set default values like BAUD
-rw-r--r--kernel/Makefile.inc5
-rw-r--r--kernel/adc.c4
-rw-r--r--kernel/clock.c4
-rw-r--r--kernel/dmx.c2
-rw-r--r--kernel/dmx/Makefile7
-rw-r--r--kernel/kernel.h16
-rw-r--r--kernel/tasks.h3
-rw-r--r--kernel/uart.c5
8 files changed, 16 insertions, 30 deletions
diff --git a/kernel/Makefile.inc b/kernel/Makefile.inc
index bcb357b..c57faf4 100644
--- a/kernel/Makefile.inc
+++ b/kernel/Makefile.inc
@@ -12,10 +12,7 @@ SIZE= avr-size
CFLAGS= -mmcu=${MCU} -Wall -Os \
-DF_CPU=${F_CPU} \
-DPRESCALE=${PRESCALE} \
- -DNPRIO=${NPRIO} \
- -DSTACK=${STACK} \
- -DNSEMA=${NSEMA} \
- -DBAUD=${BAUD}
+ -DSTACK=${STACK}
LDFLAGS= -mmcu=${MCU} -Wl,-Map,${PROG}.map
.SUFFIXES: .lst .hex .bin .srec .ehex .ebin .esrec
diff --git a/kernel/adc.c b/kernel/adc.c
index e3223a5..4229c2b 100644
--- a/kernel/adc.c
+++ b/kernel/adc.c
@@ -42,9 +42,9 @@ adc(void *arg)
a->value[i] = ADCH; /* ADLAR: 8-bit */
sei();
}
- wait(0);
+ wait(Display);
fprintf(stderr, "\n%8lx%8x", now(), a->value[0]);
- signal(0);
+ signal(Display);
sleep(0, 100000);
}
}
diff --git a/kernel/clock.c b/kernel/clock.c
index 7368bf0..0e49b6f 100644
--- a/kernel/clock.c
+++ b/kernel/clock.c
@@ -37,9 +37,9 @@ clock(void *arg)
if (m == 60) { m = 0; ++h; }
if (h == 24) { h = 0; ++d; }
- wait(0);
+ wait(Display);
fprintf(stderr, "\r%4d:%.2d:%.2d:%.2d.%1d ", d, h, m, s, ds);
- signal(0);
+ signal(Display);
sleep(0, 100000);
}
diff --git a/kernel/dmx.c b/kernel/dmx.c
index c9567a3..846b6d2 100644
--- a/kernel/dmx.c
+++ b/kernel/dmx.c
@@ -34,7 +34,7 @@ struct pwmarg pwmargs[] = {
int
main()
{
- init(NPRIO, NSEMA);
+ init(nPrio, nSema);
uart_init();
lcd_init();
diff --git a/kernel/dmx/Makefile b/kernel/dmx/Makefile
index dd55992..fff9553 100644
--- a/kernel/dmx/Makefile
+++ b/kernel/dmx/Makefile
@@ -2,11 +2,8 @@
MCU= atmega328p
F_CPU= 20000000
-PRESCALE= 8 # res 0.5usec cycle 32.7msec
-STACK= 48 # min stack size
-NSEMA= 2
-NPRIO= 2
-BAUD= 9600
+PRESCALE= 8
+STACK= 48
PROG= dmx
SRCS= dmx.c heartbeat.c rgb.c hsv.c clock.c lcd3.c uart.c adc.c ctrl.c
diff --git a/kernel/kernel.h b/kernel/kernel.h
index 76b8519..768aea2 100644
--- a/kernel/kernel.h
+++ b/kernel/kernel.h
@@ -18,24 +18,14 @@
#ifndef __KERNEL_H
#define __KERNEL_H
-#ifndef NPRIO
-#warning NPRIO not set, fallback to default: 2
-#define NPRIO 2
-#endif
-
-#ifndef NSEMA
-#warning NSEMA not set, fallback to default: 4
-#define NSEMA 4
-#endif
-
#ifndef STACK
#warning STACK not set, fallback to default: 48
#define STACK 48
#endif
-#define MINSTACK (1 * STACK - 2)
-#define DEFSTACK (2 * STACK - 2)
-#define BIGSTACK (3 * STACK - 2)
+#define MINSTACK (1 * STACK)
+#define DEFSTACK (2 * STACK)
+#define BIGSTACK (3 * STACK)
#ifndef F_CPU
#warning F_CPU not set, fallback to default: 16MHz
diff --git a/kernel/tasks.h b/kernel/tasks.h
index 4c52090..26c4734 100644
--- a/kernel/tasks.h
+++ b/kernel/tasks.h
@@ -41,6 +41,9 @@
#warning "invalid ADCPRESCALE value"
#endif
+enum Prio { Low, High, nPrio };
+enum Sema { Display, nSema };
+
struct rgbarg {
uint8_t r;
uint8_t g;
diff --git a/kernel/uart.c b/kernel/uart.c
index 21389c7..ad9d3e6 100644
--- a/kernel/uart.c
+++ b/kernel/uart.c
@@ -16,8 +16,7 @@
*/
#ifndef BAUD
-#warning "BAUD not set, fallback to default"
-#define BAUD 9600
+#define BAUD 9600
#endif
#define USE_RXCIE 1
@@ -26,7 +25,7 @@
#include <stdio.h>
#include <avr/io.h>
#include <avr/interrupt.h>
-#include <util/setbaud.h>
+#include <util/setbaud.h> /* depends on BAUD and F_CPU */
#include "kernel.h"
#include "tasks.h"