aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/dmx.c2
-rw-r--r--kernel/kernel.c5
-rw-r--r--kernel/uart.c2
3 files changed, 6 insertions, 3 deletions
diff --git a/kernel/dmx.c b/kernel/dmx.c
index 64389ec..c7eda70 100644
--- a/kernel/dmx.c
+++ b/kernel/dmx.c
@@ -40,7 +40,7 @@ main()
lcd_init();
init(48);
- exec(heartbeat, NULL, 48);
+ exec(heartbeat, NULL, 56);
exec(rgb, &rgbargs, 72);
exec(pwm, &pwmargs[0], 64);
exec(pwm, &pwmargs[1], 64);
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();
diff --git a/kernel/uart.c b/kernel/uart.c
index 9fc7e28..80ff2b4 100644
--- a/kernel/uart.c
+++ b/kernel/uart.c
@@ -43,7 +43,7 @@ ISR(SIG_UART_RECV)
switch ((c = UDR)) {
case 'Z': /* zero */
for (p = (uint8_t *)RAMSTART; p <= (uint8_t *)RAMEND; p++)
- *p = 'A';
+ *p = 0;
/* FALLTHROUGH */
case 'R': /* reboot */
case '-': /* reboot */