From 75d2cc7955a45f011e35239c426cf59538392d4f Mon Sep 17 00:00:00 2001 From: Markus Koch Date: Sat, 13 Jan 2018 11:51:07 +0100 Subject: [PATCH] Add function to write to CGRAM --- hcs12ss59t.c | 20 ++++++++++++++++++++ hcs12ss59t.h | 1 + 2 files changed, 21 insertions(+) diff --git a/hcs12ss59t.c b/hcs12ss59t.c index eda93b1..9ea22cf 100644 --- a/hcs12ss59t.c +++ b/hcs12ss59t.c @@ -126,6 +126,26 @@ void hcs12ss59t_set_buffer(char *data) HCS12SS59T_DESELECT; } +/** + * @brief hcs12ss59t_set_character set user configurable characters + * @param addr character number (0 - 15) + * @param data data array, 2 bytes per character + * @param nchar Amount of characters to update (auto increment) + */ +void hcs12ss59t_set_character(int addr, char *data, int nchar) +{ + char *ptr; + + nchar = nchar * 2; + + HCS12SS59T_SELECT; + hcs12ss59t_send_byte(HCS12SS59T_CGRAM_WR | (addr & 0x0f)); + for (ptr = data; ptr < data + nchar; ++ptr) { + hcs12ss59t_send_byte(*ptr); + } + HCS12SS59T_DESELECT; +} + /** * @brief hcs12ss59t_set_lights Set the display mode to on, off or test * @param lights value, use constants HCS12SS59T_LI* diff --git a/hcs12ss59t.h b/hcs12ss59t.h index 33a4fef..e4695b6 100644 --- a/hcs12ss59t.h +++ b/hcs12ss59t.h @@ -52,6 +52,7 @@ void hcs12ss59t_set_text(char *text); void hcs12ss59t_set_buffer(char *data); void hcs12ss59t_set_brightness(char brightness); void hcs12ss59t_set_lights(char lights); +void hcs12ss59t_set_character(int addr, char *data, int nchar); /* Low level functions */ void hcs12ss59t_send_byte(char c);