diff options
author | VG <vg@devys.org> | 2015-08-26 18:45:01 +0200 |
---|---|---|
committer | VG <vg@devys.org> | 2015-08-26 18:45:01 +0200 |
commit | 7346cfaad4d969db060f3c7ae242ea93f4fff5c0 (patch) | |
tree | 3d3a09a29f783270b8da931e3c879234553ec43f /powerswitch2/main.c | |
download | avr-7346cfaad4d969db060f3c7ae242ea93f4fff5c0.tar.gz avr-7346cfaad4d969db060f3c7ae242ea93f4fff5c0.tar.bz2 avr-7346cfaad4d969db060f3c7ae242ea93f4fff5c0.zip |
first commitboo-standby-watcher-last-with-amp
Diffstat (limited to 'powerswitch2/main.c')
-rw-r--r-- | powerswitch2/main.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/powerswitch2/main.c b/powerswitch2/main.c new file mode 100644 index 0000000..63e5d5c --- /dev/null +++ b/powerswitch2/main.c @@ -0,0 +1,39 @@ +#include <avr/io.h> +#include <util/delay.h> + +static inline void uart_init(); +int main() +{ + /* serial */ + uart_init(); + + /* data input */ + PORTB &= ~0x0F; + DDRB |= 0x0F; + + for (;;) + { + while ((UCSRA & (1 << RXC)) == 0); + PORTB ^= UDR & 0x0F; + + while ((UCSRA & (1 << UDRE)) == 0); + UDR = PORTB & 0x0F; + } + + return 0; +} + +static inline void uart_init() +{ + UCSRB |= (1 << RXEN) | (1 << TXEN); + UCSRC |= (1 << UCSZ0) | (1 << UCSZ1); +#define BAUD 38400 +#include <util/setbaud.h> + UBRRH = UBRRH_VALUE; + UBRRL = UBRRL_VALUE; +#if USE_2X + UCSRA |= (1 << U2X); +#else + UCSRA &= ~(1 << U2X); +#endif +} |