aboutsummaryrefslogtreecommitdiff
path: root/kernel/heartbeat.c
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2011-11-02 02:54:40 +0000
committerDimitri Sokolyuk <demon@dim13.org>2011-11-02 02:54:40 +0000
commit87dd379c89dbe9b63dd3ab0f20f002a20d789c47 (patch)
treeafc0c66c7641377fd5228fd5a6aee5b35dc99a24 /kernel/heartbeat.c
parente754d6f8f1288fa3ae5032ef675f35268a484c79 (diff)
major update: lot of bugfixes, lot of changes
- let compiler handle stack pointer arithmetic: switch to 16bit - improve update(): deadline depends on incremental release - resolve timing issues, new time convertion macros - major simplification of scheduler, most of garbage removed - new overflow interrupt for cycle counter, resolves also timing problems - simplify pwm generation, lookup tables are deferred, switch to 4bit - add blocking on shared values - remove garbage in lcd module and some bugfixes - add alternative reboot command to uart command interpreter - KISS
Diffstat (limited to 'kernel/heartbeat.c')
-rw-r--r--kernel/heartbeat.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/kernel/heartbeat.c b/kernel/heartbeat.c
index b562d26..7ae97ae 100644
--- a/kernel/heartbeat.c
+++ b/kernel/heartbeat.c
@@ -20,7 +20,7 @@
#include "kernel.h"
#include "tasks.h"
-#define PIN PB0
+#define PIN PB0
void
heartbeat(void *arg)
@@ -30,19 +30,21 @@ heartbeat(void *arg)
DDRB |= _BV(PIN);
PORTB &= ~_BV(PIN);
- update(0, MSEC(750));
+#define DL MSEC(5)
+
+ update(now(), DL);
for (;;) {
PORTB |= _BV(PIN);
- sleep(SOFT, MSEC(100));
+ update(MSEC(100), DL);
PORTB &= ~_BV(PIN);
- sleep(SOFT, MSEC(50));
+ update(MSEC(50), DL);
PORTB |= _BV(PIN);
- sleep(SOFT, MSEC(100));
+ update(MSEC(100), DL);
PORTB &= ~_BV(PIN);
- sleep(SOFT, MSEC(500));
+ update(MSEC(500), DL);
}
}