aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2014-01-26 16:41:50 +0100
committerJakob Odersky <jodersky@gmail.com>2014-01-26 16:41:50 +0100
commitc4da3559760351467f421a234d4240ef6670f396 (patch)
treed19f2fbb3891744f9741d044a65cf220221bc4a8 /main.c
parent7dd00b2267d991a102f18eacf3e2afacb570a299 (diff)
downloadmux-c4da3559760351467f421a234d4240ef6670f396.tar.gz
mux-c4da3559760351467f421a234d4240ef6670f396.tar.bz2
mux-c4da3559760351467f421a234d4240ef6670f396.zip
implement stdio and add mini shell
Diffstat (limited to 'main.c')
-rw-r--r--main.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/main.c b/main.c
index da6f978..a2c8827 100644
--- a/main.c
+++ b/main.c
@@ -1,4 +1,6 @@
#include <stddef.h>
+#include <stdio.h>
+#include <avr/pgmspace.h>
#include <sched/sched.h>
#include <time/timer.h>
#include <bug/panic.h>
@@ -6,6 +8,7 @@
#include <tshield/tshield.h>
#include <collection/list.h>
#include <serial/serial.h>
+#include "shell.h"
#define WAIT_CYCLES(cycles) for (volatile unsigned long i = 0; i < cycles; ++i) {}
@@ -35,20 +38,20 @@ void wake() {
void blink( char id) {
while(1) {
debug_led(id,1);
- sleep(500);
+ sleep(id * 300);
debug_led(id,0);
- sleep(500);
+ sleep(id * 300);
}
}
-#define READ_BUFFER_SIZE 24
+
+
+#define READ_BUFFER_SIZE 64
void read(char id) {
serial_init(115200);
- char data[READ_BUFFER_SIZE];
- while(1) {
- size_t length = serial_read(data, READ_BUFFER_SIZE);
- serial_write(data, length);
- }
+ stdout = &serial_out;
+ stdin = &serial_in;
+ shell();
}
DECLARE_TASK(task1, STACK_SIZE, blink);