From c1027b36455cf47d336d42e2e42a63f096f7e772 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 11 Dec 2018 10:09:37 +0100 Subject: New architecture: msp430fr5994lp (MSP430FR5994 Launchpad) Almost exclusively copypasted from msp430fr5969lp. May be replaced by symlinks later on. --- src/arch/msp430fr5994lp/driver/stdin.cc | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/arch/msp430fr5994lp/driver/stdin.cc (limited to 'src/arch/msp430fr5994lp/driver/stdin.cc') diff --git a/src/arch/msp430fr5994lp/driver/stdin.cc b/src/arch/msp430fr5994lp/driver/stdin.cc new file mode 100644 index 0000000..cc6e586 --- /dev/null +++ b/src/arch/msp430fr5994lp/driver/stdin.cc @@ -0,0 +1,31 @@ +#include "driver/stdin.h" +#include + +void StandardInput::setup() +{ + UCA0IE |= UCRXIE; +} + +bool StandardInput::hasKey() +{ + if (write_pos != read_pos) { + return true; + } + return false; +} + +char StandardInput::getKey() +{ + char ret = buffer[read_pos++]; + read_pos %= 8; + return ret; +} + +StandardInput kin; + +__attribute__((interrupt(USCI_A0_VECTOR))) __attribute__((wakeup)) void handle_stdin() +{ + if (UCA0IFG & UCRXIFG) { + kin.addKey(UCA0RXBUF); + } +} -- cgit v1.2.3