aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2014-04-09 23:08:06 +0200
committerJakob Odersky <jodersky@gmail.com>2014-04-09 23:08:06 +0200
commitd25f934944a6c3f4141158119474ad3d15ca9b7c (patch)
tree9d7102a9d5e73bd034797c6862b1ecc191f5d656
parent90b9086a79ce1b24a4efa7390b6920c1d2ea7393 (diff)
downloadmux-d25f934944a6c3f4141158119474ad3d15ca9b7c.tar.gz
mux-d25f934944a6c3f4141158119474ad3d15ca9b7c.tar.bz2
mux-d25f934944a6c3f4141158119474ad3d15ca9b7c.zip
add templates
-rw-r--r--apps/shell/app.c34
-rw-r--r--apps/template/app.c15
-rw-r--r--apps/template/app.mk1
-rw-r--r--kernel/init.c2
4 files changed, 49 insertions, 3 deletions
diff --git a/apps/shell/app.c b/apps/shell/app.c
index eb85e4e..77272b1 100644
--- a/apps/shell/app.c
+++ b/apps/shell/app.c
@@ -1,15 +1,45 @@
#include "init.h"
+#include "tshield/tshield.h"
#include "mux/sched.h"
+#include "mux/io.h"
+#include "mcu/usart.h"
#include "mcu/context.h"
+#include <stdio.h>
-void setup() {
+#define BUFFER_SIZE 64
+#define WAIT_CYCLES(cycles) for (unsigned volatile long i = 0; i < cycles; ++i){}
+void setup() {
+ tshield_init();
}
void task1(char args) {
+ open(&usart0);
+ ioctl(&usart0, IOCTL_SET_BAUD, 115200);
+
+ char in[BUFFER_SIZE];
+ while(1) {
+ int length = read(&usart0, in, BUFFER_SIZE);
+
+ int led;
+ int value;
+ if (sscanf(in, "leds/%d:%d", &led, &value) == 2) {
+ debug_led(led, value);
+ } else if (sscanf(in, "servo/0:%d", &value) == 1) {
+ tshield_servo((char) value);
+ } else {
+ char* msg = "unknown command";
+ write(&usart0, msg, 15);
+ debug_led(0,1);
+ WAIT_CYCLES(300000);
+ debug_led(0,0);
+ }
+ }
}
void task2(char args) {
+ while(1){
-} \ No newline at end of file
+ }
+}
diff --git a/apps/template/app.c b/apps/template/app.c
new file mode 100644
index 0000000..eb85e4e
--- /dev/null
+++ b/apps/template/app.c
@@ -0,0 +1,15 @@
+#include "init.h"
+#include "mux/sched.h"
+#include "mcu/context.h"
+
+void setup() {
+
+}
+
+void task1(char args) {
+
+}
+
+void task2(char args) {
+
+} \ No newline at end of file
diff --git a/apps/template/app.mk b/apps/template/app.mk
new file mode 100644
index 0000000..b1bfae3
--- /dev/null
+++ b/apps/template/app.mk
@@ -0,0 +1 @@
+MODULES=tshield \ No newline at end of file
diff --git a/kernel/init.c b/kernel/init.c
index 5a9a2e9..6ec8523 100644
--- a/kernel/init.c
+++ b/kernel/init.c
@@ -18,7 +18,7 @@ int main(int argc, char *argv[]) {
spawn_idle(&task_idle, 0);
spawn(&tcb1, 1);
- spawn(&tcb2, 2);
+ //spawn(&tcb2, 2);
sei();
clock_init(1000/HZ, schedule);