From 20ba613e5ba14ac212f37623245657219a875764 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 20 Dec 2011 16:00:35 +0000 Subject: experimental: shifted start time --- kernel/dmx.c | 3 --- kernel/kernel.c | 8 +++++++- 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; -- cgit v1.2.3