aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2011-12-20 16:00:35 +0000
committerDimitri Sokolyuk <demon@dim13.org>2011-12-20 16:00:35 +0000
commit20ba613e5ba14ac212f37623245657219a875764 (patch)
tree2aff706ec9f7125742a4d88f8f79dff0de26abdd
parent2d0aabaa8240c5aab1898aba3505eab4a0114b0b (diff)
experimental: shifted start time
-rw-r--r--kernel/dmx.c3
-rw-r--r--kernel/kernel.c8
2 files changed, 7 insertions, 4 deletions
diff --git a/kernel/dmx.c b/kernel/dmx.c
index 031417d..51a723a 100644
--- a/kernel/dmx.c
+++ b/kernel/dmx.c
@@ -52,9 +52,6 @@ main()
exec(pwm, STACK, &pwmargs[0], HIGH);
exec(pwm, STACK, &pwmargs[1], HIGH);
exec(pwm, STACK, &pwmargs[2], HIGH);
-#endif
-
-#if 1
exec(adc, STACK, &adcarg, LOW);
#endif
diff --git a/kernel/kernel.c b/kernel/kernel.c
index bf7af98..d950124 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -27,6 +27,8 @@
#include "stack.h"
#include "queue.h"
+#define DEBUG 0
+
enum State { TERMINATED, RUNQ, TIMEQ, WAITQ };
#define LO8(x) ((uint8_t)((uint16_t)(x)))
@@ -72,7 +74,9 @@ ISR(TIMER1_COMPA_vect, ISR_NAKED)
now = NOW(kernel.cycles, TCNT1);
+ #if DEBUG
PORTB ^= _BV(PB1); /* DEBUG */
+ #endif
/* save stack pointer */
tp = SIMPLEQ_FIRST(&kernel.runq);
@@ -126,7 +130,9 @@ init(uint8_t stack)
TIMSK = (_BV(OCIE1A) | _BV(TOIE1)); /* enable interrupts */
OCR1A = 0; /* default overflow */
+ #if DEBUG
DDRB |= _BV(PB1); /* DEBUG */
+ #endif
SIMPLEQ_INIT(&kernel.runq);
@@ -169,7 +175,7 @@ exec(void (*fun)(void *), uint8_t stack, void *args, uint8_t prio)
t = ++kernel.last;
- t->release = 0;
+ t->release = NOW(kernel.cycles, TCNT1);
t->prio = prio;
t->state = TIMEQ;