# HG changeset patch # User Tero Marttila # Date 1411591789 -10800 # Node ID 2687fbd14fd9ce174149e70002c3138f40744859 # Parent dc293f9aa873e60140d99ab5a6a2378d94801a26 hello: relays via serial diff -r dc293f9aa873 -r 2687fbd14fd9 src/hello.c --- a/src/hello.c Wed Sep 24 22:54:26 2014 +0300 +++ b/src/hello.c Wed Sep 24 23:49:49 2014 +0300 @@ -5,13 +5,25 @@ #define DEBUG_PIN 5 #define DEBUG_PORT PORTB +#define RELAY_DDR DDRC +#define RELAY_PORT PORTC +#define RELAY_PIN PINC +#define RELAY_PINS 4 + +#define RELAY_DOWN1 0 +#define RELAY_DOWN2 1 +#define RELAY_LEFT 2 +#define RELAY_RIGHT 3 + #include "debug.h" +#include "relay.h" #include "serial.h" #include "timer.h" int main (void) { debug_init(); + relay_init(RELAY_PINS); serial_init(SERIAL_BAUD_9600, SERIAL_PARITY_N, SERIAL_STOPBITS_1); timer_init(); @@ -22,7 +34,6 @@ debug_set(); sei(); - // start while (true) { if (timer_sleep(timeout)) { @@ -33,6 +44,28 @@ c = '?'; } + switch (c) { + case '.': break; + + case 'L': relay_open(RELAY_LEFT); break; + case 'R': relay_open(RELAY_RIGHT); break; + case 'B': + relay_open(RELAY_DOWN1); + relay_open(RELAY_DOWN2); + break; + + case 'l': relay_toggle(RELAY_LEFT); break; + case 'r': relay_toggle(RELAY_RIGHT); break; + case 'b': + relay_close(RELAY_DOWN1); + relay_close(RELAY_DOWN2); + break; + + default: + c = '!'; + break; + } + debug_toggle(); // out