From 8babe575283bd9ab0e81e904b203bf5564e1a631 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lauchmelder23=C2=A7?= Date: Fri, 20 Nov 2020 00:32:33 +0000 Subject: [PATCH] Added macros for special characters --- example/example.c | 5 ++- example/example.out | Bin 8452 -> 0 bytes raspberrylcd.c | 12 +++++ raspberrylcd.h | 104 +++++++++++++++++++++++++++++++++++++++++--- 4 files changed, 113 insertions(+), 8 deletions(-) delete mode 100755 example/example.out diff --git a/example/example.c b/example/example.c index 958e15a..f757e6a 100644 --- a/example/example.c +++ b/example/example.c @@ -6,8 +6,9 @@ int main(void) configurePins(&screen, 7, 9, 8, 0, 0, 0, 0, 21, 22, 23, 24); initScreen(&screen, HALF_BYTE_INTERFACE, TWO_LINES, FONT_5x7, CURSOR_ON | CURSOR_BLINK, LEFT_TO_RIGHT); - sendData(&screen, JAPANESE_QUOTE_START); - sendData(&screen, JAPANESE_QUOTE_END); + sendChars(&screen, 4, + JAPANESE_KATAKANA_TO, JAPANESE_DAKUTEN, JAPANESE_KATAKANA_I, JAPANESE_KATAKANA_TSU + ); resetPins(&screen); return 0; diff --git a/example/example.out b/example/example.out deleted file mode 100755 index 423a16664db1450033b49d2f4d29ed36648e5f4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8452 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 N!iAxU^a?tS`wwsHd|3bh diff --git a/raspberrylcd.c b/raspberrylcd.c index 84fc7da..8ca9f06 100644 --- a/raspberrylcd.c +++ b/raspberrylcd.c @@ -2,6 +2,7 @@ #include #include +#include void waitMs(uint32_t ms) { @@ -124,4 +125,15 @@ void sendText(LCDScreen* screen, const char* text) { for(const char* c = text; *c != '\x00'; c++) sendData(screen, *c); +} + +void sendChars(LCDScreen* screen, size_t len, ...) +{ + va_list args; + va_start(args, len); + + for(size_t i = 0; i < len; i++) + sendData(screen, (uint8_t)va_arg(args, int)); + + va_end(args); } \ No newline at end of file diff --git a/raspberrylcd.h b/raspberrylcd.h index 32702a5..2fec79e 100644 --- a/raspberrylcd.h +++ b/raspberrylcd.h @@ -32,12 +32,103 @@ #define FONT_5x7 0b00000 // Special characters supported by the LCD -#define YEN_CURRENCY 0b01011100 -#define ARROW_RIGHT 0b01111110 -#define ARROW_LEFT 0b01111111 -#define JAPANESE_PERIOD 0b10100001 -#define JAPANESE_QUOTE_START 0b10100010 -#define JAPANESE_QUOTE_END 0b10100011 +#define CURRENCY_YEN 0b01011100 +#define ARROW_RIGHT 0b01111110 +#define ARROW_LEFT 0b01111111 +#define JAPANESE_PERIOD 0b10100001 +#define JAPANESE_QUOTE_START 0b10100010 +#define JAPANESE_QUOTE_END 0b10100011 +#define JAPANESE_COMMA 0b10100100 +#define JAPANESE_INTERPUNCT 0b10100101 +#define JAPANESE_KATAKANA_WO 0b10100110 +#define JAPANESE_KATAKANA_CHIISAI_A 0b10100111 +#define JAPANESE_KATAKANA_CHIISAI_I 0b10101000 +#define JAPANESE_KATAKANA_CHIISAI_U 0b10101001 +#define JAPANESE_KATAKANA_CHIISAI_E 0b10101010 +#define JAPANESE_KATAKANA_CHIISAI_O 0b10101011 +#define JAPANESE_KATAKANA_CHIISAI_YA 0b10101100 +#define JAPANESE_KATAKANA_CHIISAI_YU 0b10101101 +#define JAPANESE_KATAKANA_CHIISAI_YO 0b10101110 +#define JAPANESE_KATAKANA_CHIISAI_TSU 0b10101111 +#define JAPANESE_CHOONPU 0b10110000 +#define JAPANESE_KATAKANA_A 0b10110001 +#define JAPANESE_KATAKANA_I 0b10110010 +#define JAPANESE_KATAKANA_U 0b10110011 +#define JAPANESE_KATAKANA_E 0b10110100 +#define JAPANESE_KATAKANA_O 0b10110101 +#define JAPANESE_KATAKANA_KA 0b10110110 +#define JAPANESE_KATAKANA_KI 0b10110111 +#define JAPANESE_KATAKANA_KU 0b10111000 +#define JAPANESE_KATAKANA_KE 0b10111001 +#define JAPANESE_KATAKANA_KO 0b10111010 +#define JAPANESE_KATAKANA_SA 0b10111011 +#define JAPANESE_KATAKANA_SHI 0b10111100 +#define JAPANESE_KATAKANA_SU 0b10111101 +#define JAPANESE_KATAKANA_SE 0b10111110 +#define JAPANESE_KATAKANA_SO 0b10111111 +#define JAPANESE_KATAKANA_TA 0b11000000 +#define JAPANESE_KATAKANA_CHI 0b11000001 +#define JAPANESE_KATAKANA_TSU 0b11000010 +#define JAPANESE_KATAKANA_TE 0b11000011 +#define JAPANESE_KATAKANA_TO 0b11000100 +#define JAPANESE_KATAKANA_NA 0b11000101 +#define JAPANESE_KATAKANA_NI 0b11000110 +#define JAPANESE_KATAKANA_NU 0b11000111 +#define JAPANESE_KATAKANA_NE 0b11001000 +#define JAPANESE_KATAKANA_NO 0b11001001 +#define JAPANESE_KATAKANA_HA 0b11001010 +#define JAPANESE_KATAKANA_HI 0b11001011 +#define JAPANESE_KATAKANA_FU 0b11001100 +#define JAPANESE_KATAKANA_HE 0b11001101 +#define JAPANESE_KATAKANA_HO 0b11001110 +#define JAPANESE_KATAKANA_MA 0b11001111 +#define JAPANESE_KATAKANA_MI 0b11010000 +#define JAPANESE_KATAKANA_MU 0b11010001 +#define JAPANESE_KATAKANA_ME 0b11010010 +#define JAPANESE_KATAKANA_MO 0b11010011 +#define JAPANESE_KATAKANA_YA 0b11010100 +#define JAPANESE_KATAKANA_YU 0b11010101 +#define JAPANESE_KATAKANA_YO 0b11010110 +#define JAPANESE_KATAKANA_RA 0b11010111 +#define JAPANESE_KATAKANA_RI 0b11011000 +#define JAPANESE_KATAKANA_RU 0b11011001 +#define JAPANESE_KATAKANA_RE 0b11011010 +#define JAPANESE_KATAKANA_RO 0b11011011 +#define JAPANESE_KATAKANA_WA 0b11011100 +#define JAPANESE_KATAKANA_N 0b11011101 +#define JAPANESE_DAKUTEN 0b11011110 +#define JAPANESE_HANDAKUTEN 0b11011111 +#define MATH_ALPHA 0b11100000 +#define UMLAUT_A 0b11100001 +#define MATH_BETA 0b11100010 +#define MATH_EPSILON 0b11100011 +#define MATH_MU 0b11100100 +#define MATH_SIGMA 0b11100101 +#define MATH_RHO 0b11100110 +#define MATH_G 0b11100111 +#define MATH_SQRT 0b11101000 +#define MATH_RECIPROCAL 0b11101001 +#define MATH_J 0b11101010 +#define MATH_ASTERISK 0b11101011 +#define CURRENCY_CENT 0b11101100 +#define CURRENCY_UNKNOWN 0b11101101 +#define TILDE_N 0b11101110 +#define UMLAUT_O 0b11101111 +#define MATH_P 0b11110000 +#define MATH_Q 0b11110001 +#define MATH_THETA 0b11110010 +#define MATH_INF 0b11110011 +#define MATH_OMEGA 0b11110100 +#define UMLAUT_U 0b11110101 +#define MATH_SUM 0b11110110 +#define MATH_PI 0b11110111 +#define MATH_ABS_X 0b11111000 +#define MATH_Y 0b11111001 +#define JAPANESE_KANJI_SEN 0b11111010 +#define JAPANESE_KANJI_MAN 0b11111011 +#define JAPANESE_KANJI_YEN 0b11111100 +#define MATH_DIVISION 0b11111101 +#define CURSOR 0b11111111 #include @@ -58,5 +149,6 @@ extern void resetPins(LCDScreen* screen); extern void sendCommand(LCDScreen* screen, uint8_t command); extern void sendData(LCDScreen* screen, uint8_t data); extern void sendText(LCDScreen* screen, const char* text); +extern void sendChars(LCDScreen* screen, unsigned int len, ...); #endif // RASPBERRY_LCD_H \ No newline at end of file