diff options
author | Daniel Friesel <derf@finalrewind.org> | 2022-01-16 18:36:36 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2022-01-16 18:36:36 +0100 |
commit | fb6e2fed7132ae776c62aecc2ee09ad532d482d3 (patch) | |
tree | a7a83b9d78f4972b2f2ac513b02f4fc8e49d8e6e | |
parent | 84f2392ec92f63963912f18726d16e87d0d0925f (diff) |
msp430fr: use 16-byte uart input buffer
-rw-r--r-- | include/arch/msp430fr5969lp/driver/stdin.h | 8 | ||||
-rw-r--r-- | include/arch/msp430fr5994lp/driver/stdin.h | 8 | ||||
-rw-r--r-- | src/arch/msp430fr5969lp/driver/stdin.cc | 2 | ||||
-rw-r--r-- | src/arch/msp430fr5994lp/driver/stdin.cc | 2 |
4 files changed, 12 insertions, 8 deletions
diff --git a/include/arch/msp430fr5969lp/driver/stdin.h b/include/arch/msp430fr5969lp/driver/stdin.h index 1085111..7b78a9a 100644 --- a/include/arch/msp430fr5969lp/driver/stdin.h +++ b/include/arch/msp430fr5969lp/driver/stdin.h @@ -9,8 +9,10 @@ class StandardInput { private: StandardInput(const StandardInput ©); - char buffer[8]; - unsigned char write_pos, read_pos; + static unsigned char const bufsize = 16; + char buffer[bufsize]; + volatile unsigned char write_pos; + unsigned char read_pos; public: StandardInput() : write_pos(0), read_pos(0) {} @@ -20,7 +22,7 @@ class StandardInput { inline void addKey(char key) { buffer[write_pos++] = key; - write_pos %= 8; + write_pos %= bufsize; } }; diff --git a/include/arch/msp430fr5994lp/driver/stdin.h b/include/arch/msp430fr5994lp/driver/stdin.h index 1085111..7b78a9a 100644 --- a/include/arch/msp430fr5994lp/driver/stdin.h +++ b/include/arch/msp430fr5994lp/driver/stdin.h @@ -9,8 +9,10 @@ class StandardInput { private: StandardInput(const StandardInput ©); - char buffer[8]; - unsigned char write_pos, read_pos; + static unsigned char const bufsize = 16; + char buffer[bufsize]; + volatile unsigned char write_pos; + unsigned char read_pos; public: StandardInput() : write_pos(0), read_pos(0) {} @@ -20,7 +22,7 @@ class StandardInput { inline void addKey(char key) { buffer[write_pos++] = key; - write_pos %= 8; + write_pos %= bufsize; } }; diff --git a/src/arch/msp430fr5969lp/driver/stdin.cc b/src/arch/msp430fr5969lp/driver/stdin.cc index 033349d..6ad43b8 100644 --- a/src/arch/msp430fr5969lp/driver/stdin.cc +++ b/src/arch/msp430fr5969lp/driver/stdin.cc @@ -22,7 +22,7 @@ bool StandardInput::hasKey() char StandardInput::getKey() { char ret = buffer[read_pos++]; - read_pos %= 8; + read_pos %= bufsize; return ret; } diff --git a/src/arch/msp430fr5994lp/driver/stdin.cc b/src/arch/msp430fr5994lp/driver/stdin.cc index 033349d..6ad43b8 100644 --- a/src/arch/msp430fr5994lp/driver/stdin.cc +++ b/src/arch/msp430fr5994lp/driver/stdin.cc @@ -22,7 +22,7 @@ bool StandardInput::hasKey() char StandardInput::getKey() { char ret = buffer[read_pos++]; - read_pos %= 8; + read_pos %= bufsize; return ret; } |