aboutsummaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c5
1 files changed, 4 insertions, 1 deletions
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();