diff options
author | Jakob Odersky <jodersky@gmail.com> | 2014-04-09 23:08:06 +0200 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2014-04-09 23:08:06 +0200 |
commit | d25f934944a6c3f4141158119474ad3d15ca9b7c (patch) | |
tree | 9d7102a9d5e73bd034797c6862b1ecc191f5d656 /apps/shell/app.c | |
parent | 90b9086a79ce1b24a4efa7390b6920c1d2ea7393 (diff) | |
download | mux-d25f934944a6c3f4141158119474ad3d15ca9b7c.tar.gz mux-d25f934944a6c3f4141158119474ad3d15ca9b7c.tar.bz2 mux-d25f934944a6c3f4141158119474ad3d15ca9b7c.zip |
add templates
Diffstat (limited to 'apps/shell/app.c')
-rw-r--r-- | apps/shell/app.c | 34 |
1 files changed, 32 insertions, 2 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 + } +} |