Flexible character LCD library for AVR Microcontrollers
Collin J. Doering
ea7003ce83
Use pre-processor macros to allow for simple entry of ANSI escape sequences. Many escape sequences don't require all characters in all cases. Example: Cursor movement (up down, forward and back) all take one parameter (natural number) that defaults to 1, and can be omitted in this case. Calling the associated macros with 1 will generate the correct escape but not the smallest one. Now for these single argument cases (there are others also) the macro of choice can be used with an empty argument which will generate the smallest ANSI escape sequence. Eg, the following are equivalent: CUD() === CUD(1) Another example is use of CUP (cursor position). It takes two arguments which both default to 1. Similarly to the CUD example above, CUP(1,1) generates a valid ANSI escape sequence, just not the smallest one. The smallest one can be achieved by omitting the arguments to CUP: CUP(,). For more information on ANSI escapes see wikipedia: https://en.wikipedia.org/wiki/ANSI_escape_code This is just an initial proof of concept and is not complete; namely: - Not all ANSI escapes are implemented - Macros don't error check for the user; that is, invalid escapes can be generated (Eg. the argument to ED is constrained to 0, 1, or 2 but this is not checked by the ED macro) - Macro's can generate invalid ANSI escapes when the argument that's given is not a natural number (specified as ASCII) Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca> |
||
---|---|---|
.gitignore | ||
ansi_escapes.h | ||
lcdLib.c | ||
lcdLib.h | ||
lcdLibConfig.h | ||
lcdOutput.c | ||
Makefile | ||
USART.c | ||
USART.h |