summaryrefslogtreecommitdiffstats
path: root/watch-library/hpl/slcd
diff options
context:
space:
mode:
Diffstat (limited to 'watch-library/hpl/slcd')
-rw-r--r--watch-library/hpl/slcd/hpl_slcd.c47
-rw-r--r--watch-library/hpl/slcd/hpl_slcd_cm_14_seg_mapping.h104
-rw-r--r--watch-library/hpl/slcd/hpl_slcd_cm_7_seg_mapping.h68
3 files changed, 0 insertions, 219 deletions
diff --git a/watch-library/hpl/slcd/hpl_slcd.c b/watch-library/hpl/slcd/hpl_slcd.c
index f8f42bdd..0f58b1f5 100644
--- a/watch-library/hpl/slcd/hpl_slcd.c
+++ b/watch-library/hpl/slcd/hpl_slcd.c
@@ -35,8 +35,6 @@
#include <utils_assert.h>
#include <hpl_slcd_sync.h>
#include <hpl_slcd_config.h>
-#include <hpl_slcd_cm_7_seg_mapping.h>
-#include <hpl_slcd_cm_14_seg_mapping.h>
static int32_t _slcd_sync_set_segment(struct _slcd_sync_device *dev, const uint32_t com, const uint32_t seg,
const bool on);
@@ -62,9 +60,6 @@ static struct slcd_configuration _slcd
CONF_SLCD_BBEN << SLCD_CTRLB_BBEN_Pos | SLCD_CTRLB_BBD(CONF_SLCD_BBD - 1),
SLCD_CTRLC_CTST(CONF_SLCD_CONTRAST_ADJUST),
SLCD_CTRLD_DISPEN};
-static const struct slcd_char_setting cm_setting[] = SLCD_CHAR_SETTING_TABLE;
-static const struct slcd_char_mapping cm7_lut[] = SLCD_SEG7_LUT;
-static const struct slcd_char_mapping cm14_lut[] = SLCD_SEG14_LUT;
/**
* \brief Initialize SLCD Device Descriptor
*/
@@ -201,48 +196,6 @@ int32_t _slcd_sync_seg_blink(struct _slcd_sync_device *dev, uint32_t seg, const
}
/**
- * \brief Displays a character
- */
-int32_t _slcd_sync_write_char(struct _slcd_sync_device *dev, const uint8_t character, uint32_t index)
-{
- uint32_t i;
- uint32_t data = ~0;
- if (cm_setting[index].size == 7) {
- for (i = 0; i<sizeof(cm7_lut)>> 2; i++) {
- if (cm7_lut[i].character == character) {
- data = cm7_lut[i].mapping;
- break;
- }
- }
- } else if (cm_setting[index].size == 14) {
- for (i = 0; i<sizeof(cm14_lut)>> 2; i++) {
- if (cm14_lut[i].character == character) {
- data = cm14_lut[i].mapping;
- break;
- }
- }
- }
- if (data == 0xFFFFFFFF) {
- return ERR_INVALID_ARG;
- }
-
- hri_slcd_write_CMCFG_NSEG_bf(dev->hw, cm_setting[index].nseg);
- hri_slcd_write_CMINDEX_CINDEX_bf(dev->hw, cm_setting[index].com_index);
- hri_slcd_write_CMINDEX_SINDEX_bf(dev->hw, cm_setting[index].seg_index);
-
- if (cm_setting[index].size == 7) {
- hri_slcd_write_CMDMASK_reg(dev->hw, SEG7_MASK);
- } else if (cm_setting[index].size == 14) {
- hri_slcd_write_CMDMASK_reg(dev->hw, SEG14_MASK);
- }
- while (hri_slcd_get_STATUS_CMWRBUSY_bit(dev->hw))
- ;
- hri_slcd_write_CMDATA_reg(dev->hw, data);
-
- return ERR_NONE;
-}
-
-/**
* \brief Start animation play by a segment array
*/
int32_t _slcd_sync_start_animation(struct _slcd_sync_device *dev, const uint32_t segs[], uint32_t len,
diff --git a/watch-library/hpl/slcd/hpl_slcd_cm_14_seg_mapping.h b/watch-library/hpl/slcd/hpl_slcd_cm_14_seg_mapping.h
deleted file mode 100644
index 65777d6d..00000000
--- a/watch-library/hpl/slcd/hpl_slcd_cm_14_seg_mapping.h
+++ /dev/null
@@ -1,104 +0,0 @@
-#include <hpl_slcd_config.h>
-
-/**
- * character segments position index
- *
- * For a 14-segments character, each segment has an unique position index.
- * The segment layout and position index value is shown as below.
- * The symbol '-', '|', '/', '\' represent the SLCD character segment, and the
- * number represent each segment's position index, which equals to macro
- * SEG14_0 to SEG14_7.
- * The character lookup mapping table use those position index
- * (SEG14_0..SEG14_14) to compose some visible arabic numerals, letters or some
- * specific ASCII.
- * For example char '1' can be represented by use position index 1,2.
- * (SEG7_1 | SEG7_2).
- * More predefined character lookup can be found at below "14-segment character
- * lookup mapping table"
- *
- * -0
- * |5 \6 |7 /8 |1
- * -9 -10
- * |4 /11 |12 \13 |2
- * -3
- */
-
-/**
- * Character segment position remapping setting
- *
- * An SLCD screen typically use several hardware segments to display a
- * character(for example from COM3/SEG0 to COM4/SEG7).
- * The lowest COM and SEG index is 0 (COM3/SEG0 index is 0).
- * The "hardware character segments index" maybe different with the "character
- * segments position index". The remapping setting allow application to adjust
- * those sequence.
- *
- */
-#define SEG14_0 (0x1 << CONF_SLCD_CM_14SEGS_0_SETTING)
-#define SEG14_1 (0x1 << CONF_SLCD_CM_14SEGS_1_SETTING)
-#define SEG14_2 (0x1 << CONF_SLCD_CM_14SEGS_2_SETTING)
-#define SEG14_3 (0x1 << CONF_SLCD_CM_14SEGS_3_SETTING)
-#define SEG14_4 (0x1 << CONF_SLCD_CM_14SEGS_4_SETTING)
-#define SEG14_5 (0x1 << CONF_SLCD_CM_14SEGS_5_SETTING)
-#define SEG14_6 (0x1 << CONF_SLCD_CM_14SEGS_6_SETTING)
-#define SEG14_7 (0x1 << CONF_SLCD_CM_14SEGS_7_SETTING)
-#define SEG14_8 (0x1 << CONF_SLCD_CM_14SEGS_8_SETTING)
-#define SEG14_9 (0x1 << CONF_SLCD_CM_14SEGS_9_SETTING)
-#define SEG14_10 (0x1 << CONF_SLCD_CM_14SEGS_10_SETTING)
-#define SEG14_11 (0x1 << CONF_SLCD_CM_14SEGS_11_SETTING)
-#define SEG14_12 (0x1 << CONF_SLCD_CM_14SEGS_12_SETTING)
-#define SEG14_13 (0x1 << CONF_SLCD_CM_14SEGS_13_SETTING)
-
-/**
- * 17-segments character mask value
- */
-#define SEG14_MASK \
- (0xFFFFFF \
- & ~(SEG14_0 | SEG14_1 | SEG14_2 | SEG14_3 | SEG14_4 | SEG14_5 | SEG14_6 | SEG14_7 | SEG14_8 | SEG14_9 | SEG14_10 \
- | SEG14_11 | SEG14_12 | SEG14_13))
-
-/**
- * 14-segment character lookup mapping table
- * struct slcd_char_mapping;
- */
-#define SLCD_SEG14_LUT \
- { \
- {'0', SEG14_0 | SEG14_1 | SEG14_2 | SEG14_3 | SEG14_4 | SEG14_5 | SEG14_8 | SEG14_11}, \
- {'1', SEG14_1 | SEG14_2}, {'2', SEG14_0 | SEG14_1 | SEG14_3 | SEG14_4 | SEG14_9 | SEG14_10}, \
- {'3', SEG14_0 | SEG14_1 | SEG14_2 | SEG14_3 | SEG14_9 | SEG14_10}, \
- {'4', SEG14_1 | SEG14_2 | SEG14_5 | SEG14_9 | SEG14_10}, \
- {'5', SEG14_0 | SEG14_2 | SEG14_3 | SEG14_5 | SEG14_9 | SEG14_10}, \
- {'6', SEG14_0 | SEG14_2 | SEG14_3 | SEG14_4 | SEG14_5 | SEG14_9 | SEG14_10}, \
- {'7', SEG14_0 | SEG14_1 | SEG14_2}, \
- {'8', SEG14_0 | SEG14_1 | SEG14_2 | SEG14_3 | SEG14_4 | SEG14_5 | SEG14_9 | SEG14_10}, \
- {'9', SEG14_0 | SEG14_1 | SEG14_2 | SEG14_3 | SEG14_5 | SEG14_9 | SEG14_10}, \
- {'a', SEG14_0 | SEG14_1 | SEG14_2 | SEG14_4 | SEG14_5 | SEG14_9 | SEG14_10}, \
- {'b', SEG14_0 | SEG14_1 | SEG14_2 | SEG14_3 | SEG14_7 | SEG14_10 | SEG14_12}, \
- {'c', SEG14_0 | SEG14_3 | SEG14_4 | SEG14_5}, \
- {'d', SEG14_0 | SEG14_1 | SEG14_2 | SEG14_3 | SEG14_7 | SEG14_12}, \
- {'e', SEG14_0 | SEG14_3 | SEG14_4 | SEG14_5 | SEG14_9 | SEG14_10}, \
- {'f', SEG14_0 | SEG14_4 | SEG14_5 | SEG14_9 | SEG14_10}, \
- {'g', SEG14_0 | SEG14_2 | SEG14_3 | SEG14_4 | SEG14_5 | SEG14_10}, \
- {'h', SEG14_1 | SEG14_2 | SEG14_4 | SEG14_5 | SEG14_9 | SEG14_10}, \
- {'i', SEG14_1 | SEG14_2 | SEG14_4 | SEG14_5 | SEG14_9 | SEG14_10}, \
- {'j', SEG14_1 | SEG14_2 | SEG14_3 | SEG14_4}, {'k', SEG14_4 | SEG14_5 | SEG14_8 | SEG14_9 | SEG14_13}, \
- {'l', SEG14_3 | SEG14_4 | SEG14_5}, {'m', SEG14_1 | SEG14_2 | SEG14_4 | SEG14_5 | SEG14_6 | SEG14_8}, \
- {'n', SEG14_1 | SEG14_2 | SEG14_4 | SEG14_5 | SEG14_6 | SEG14_13}, \
- {'o', SEG14_0 | SEG14_1 | SEG14_2 | SEG14_3 | SEG14_4 | SEG14_5}, \
- {'p', SEG14_0 | SEG14_1 | SEG14_4 | SEG14_5 | SEG14_9 | SEG14_10}, \
- {'q', SEG14_0 | SEG14_1 | SEG14_2 | SEG14_3 | SEG14_4 | SEG14_5 | SEG14_13}, \
- {'r', SEG14_0 | SEG14_1 | SEG14_4 | SEG14_5 | SEG14_9 | SEG14_10 | SEG14_13}, \
- {'s', SEG14_0 | SEG14_3 | SEG14_5 | SEG14_9 | SEG14_13}, {'t', SEG14_0 | SEG14_7 | SEG14_12}, \
- {'u', SEG14_1 | SEG14_2 | SEG14_3 | SEG14_4 | SEG14_5}, {'v', SEG14_4 | SEG14_5 | SEG14_8 | SEG14_11}, \
- {'w', SEG14_1 | SEG14_2 | SEG14_4 | SEG14_5 | SEG14_11 | SEG14_13}, \
- {'x', SEG14_6 | SEG14_8 | SEG14_11 | SEG14_13}, \
- {'y', SEG14_1 | SEG14_2 | SEG14_3 | SEG14_5 | SEG14_9 | SEG14_10}, \
- {'z', SEG14_0 | SEG14_3 | SEG14_8 | SEG14_11}, {'-', SEG14_9 | SEG14_10}, \
- {'+', SEG14_7 | SEG14_9 | SEG14_10 | SEG14_12}, {'/', SEG14_8 | SEG14_11}, \
- {'=', SEG14_3 | SEG14_9 | SEG14_10}, \
- {'#', SEG14_1 | SEG14_2 | SEG14_3 | SEG14_7 | SEG14_9 | SEG14_10 | SEG14_12}, \
- {'*', SEG14_6 | SEG14_8 | SEG14_11 | SEG14_13}, {'\'', SEG14_13}, {')', SEG14_6 | SEG14_11}, \
- {'(', SEG14_8 | SEG14_13}, {'@', SEG14_0 | SEG14_1 | SEG14_2 | SEG14_3 | SEG14_4 | SEG14_9 | SEG14_13}, \
- {'$', SEG14_0 | SEG14_2 | SEG14_3 | SEG14_5 | SEG14_7 | SEG14_9 | SEG14_10 | SEG14_12}, \
- {'%', SEG14_2 | SEG14_5 | SEG14_8 | SEG14_11}, {'\\', SEG14_6 | SEG14_13}, {'_', SEG14_3}, {0, 0}, \
- }
diff --git a/watch-library/hpl/slcd/hpl_slcd_cm_7_seg_mapping.h b/watch-library/hpl/slcd/hpl_slcd_cm_7_seg_mapping.h
deleted file mode 100644
index eae344c8..00000000
--- a/watch-library/hpl/slcd/hpl_slcd_cm_7_seg_mapping.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#include <hpl_slcd_config.h>
-
-/**
- * character segments position index
- *
- * For a 7 segments character, each segment has an unique position index.
- * The segment layout and position index value is shown as below.
- * The symbol '-', '|' represent the SLCD character segment, and the
- * number represent each segment's position index, which equals to macro
- * SEG7_0 to SEG7_7.
- * The character lookup mapping table use those position index (SEG7_0..SEG7_7)
- * to compose some visible arabic numerals, letters or some specific ASCII.
- * For example char '0' can be represented by use position index 0,1,2,3,4,5.
- * (SEG7_0 | SEG7_1 | SEG7_2 | SEG7_3 | SEG7_4 | SEG7_5).
- * More predefined character lookup can be found at below "7-segments character
- * lookup mapping table"
- * -0
- * |5 |1
- * -6
- * |4 |2
- * -3
- */
-
-/**
- * Character segment position remapping setting
- *
- * An SLCD screen typically use several hardware segments to display a
- * character(for example from COM3/SEG0 to COM3/SEG7).
- * The lowest COM and SEG index is 0 (COM3/SEG0 index is 0).
- * The "hardware character segments index" maybe different with the "character
- * segments position index". The remapping setting allow application to adjust
- * those sequence.
- *
- */
-#define SEG7_0 (0x1 << CONF_SLCD_CM_7SEGS_0_SETTING)
-#define SEG7_1 (0x1 << CONF_SLCD_CM_7SEGS_1_SETTING)
-#define SEG7_2 (0x1 << CONF_SLCD_CM_7SEGS_2_SETTING)
-#define SEG7_3 (0x1 << CONF_SLCD_CM_7SEGS_3_SETTING)
-#define SEG7_4 (0x1 << CONF_SLCD_CM_7SEGS_4_SETTING)
-#define SEG7_5 (0x1 << CONF_SLCD_CM_7SEGS_5_SETTING)
-#define SEG7_6 (0x1 << CONF_SLCD_CM_7SEGS_6_SETTING)
-
-/**
- * 7-segments character mask value
- */
-#define SEG7_MASK (0xFFFFFF & ~(SEG7_0 | SEG7_1 | SEG7_2 | SEG7_3 | SEG7_4 | SEG7_5 | SEG7_6))
-
-/**
- * 7-segments character lookup mapping table.
- *
- * Array value of slcd_char_mapping struct, application can add or remove
- * item from it.
- */
-#define SLCD_SEG7_LUT \
- { \
- {0, 0}, {'0', SEG7_0 | SEG7_1 | SEG7_2 | SEG7_3 | SEG7_4 | SEG7_5}, {'1', SEG7_1 | SEG7_2}, \
- {'2', SEG7_0 | SEG7_1 | SEG7_3 | SEG7_4 | SEG7_6}, {'3', SEG7_0 | SEG7_1 | SEG7_2 | SEG7_3 | SEG7_6}, \
- {'4', SEG7_1 | SEG7_2 | SEG7_5 | SEG7_6}, {'5', SEG7_0 | SEG7_2 | SEG7_3 | SEG7_5 | SEG7_6}, \
- {'6', SEG7_0 | SEG7_2 | SEG7_3 | SEG7_4 | SEG7_5 | SEG7_6}, {'7', SEG7_0 | SEG7_1 | SEG7_2}, \
- {'8', SEG7_0 | SEG7_1 | SEG7_2 | SEG7_3 | SEG7_4 | SEG7_5 | SEG7_6}, \
- {'9', SEG7_0 | SEG7_1 | SEG7_2 | SEG7_5 | SEG7_6}, \
- {'a', SEG7_0 | SEG7_1 | SEG7_2 | SEG7_4 | SEG7_5 | SEG7_6}, \
- {'b', SEG7_2 | SEG7_3 | SEG7_4 | SEG7_5 | SEG7_6}, {'c', SEG7_0 | SEG7_3 | SEG7_4 | SEG7_5}, \
- {'d', SEG7_1 | SEG7_2 | SEG7_3 | SEG7_4 | SEG7_6}, {'e', SEG7_0 | SEG7_3 | SEG7_4 | SEG7_5 | SEG7_6}, \
- { \
- 'f', SEG7_0 | SEG7_4 | SEG7_5 | SEG7_6 \
- } \
- }