aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2012-03-05 05:02:50 +0000
committerDimitri Sokolyuk <demon@dim13.org>2012-03-05 05:02:50 +0000
commit5b9d202c2658243596c88c8365f1a2b271b91636 (patch)
tree84bdd604c10444f04a62583866bef75a66f6c795
parent39dec0238f1ac007d95764add7a2d1d09a9ca139 (diff)
*** empty log message ***
-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 */