From 5b9d202c2658243596c88c8365f1a2b271b91636 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 5 Mar 2012 05:02:50 +0000 Subject: *** empty log message *** --- kernel/kernel.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'kernel/kernel.c') diff --git a/kernel/kernel.c b/kernel/kernel.c index f14f7f0..3d2873a 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -100,7 +100,7 @@ ISR(TIMER1_COMPA_vect, ISR_NAKED) ++kernel.rqlen; } - nexthit = UINT16_MAX >> kernel.rqlen; + nexthit = UINT16_MAX; if ((tp = TAILQ_FIRST(&kernel.timeq))) { dist = DISTANCE(now, tp->release); @@ -108,6 +108,8 @@ ISR(TIMER1_COMPA_vect, ISR_NAKED) nexthit = dist; } + nexthit >>= kernel.rqlen; + OCR1A = (uint16_t)(now + nexthit); /* switch context */ @@ -150,6 +152,7 @@ init(uint8_t stack) kernel.idle->release = 0; TAILQ_INSERT_TAIL(&kernel.runq, kernel.idle, r_link); kernel.current = TAILQ_FIRST(&kernel.runq); + kernel.semaphore = 0; kernel.rqlen = 0; sei(); -- cgit v1.2.3