This is a driver for the segment LCD found on the Silicon Labs EF32 Giant, Leopard and Wonder Gecko platforms. NOTE: This driver will not work with other platforms, because it contains EFM32-specific code.

Dependents:   EFM32 RDA5807M RDS Radio EMF32-Segment-Touch-Demo EMF32_ShowKey blinky_EFM32_Giant ... more

Information

All examples in this repo are considered EXPERIMENTAL QUALITY, meaning this code has been created as one-off proof-of-concept and is suitable as a demonstration for experimental purposes only. This code will not be regularly maintained by Silicon Labs and there is no guarantee that these projects will work across all environments, SDK versions and hardware.

/media/uploads/stevew817/screenshot_2015-03-17_11.17.52.png

Committer:
stevew817
Date:
Mon May 04 20:40:26 2015 +0000
Revision:
6:114aa75da77b
Parent:
1:5335eb33bfcb
Add pin defines for WG and LG

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Steven Cooreman 0:559902e88130 1 /**************************************************************************//**
Steven Cooreman 0:559902e88130 2 * @file
Steven Cooreman 1:5335eb33bfcb 3 * @brief Segment LCD Config for the EFM32 Leopard Gecko STK (STK_3600)
Steven Cooreman 0:559902e88130 4 * @version 3.20.5
Steven Cooreman 0:559902e88130 5 ******************************************************************************
Steven Cooreman 0:559902e88130 6 * @section License
Steven Cooreman 0:559902e88130 7 * <b>(C) Copyright 2014 Silicon Labs, http://www.silabs.com</b>
Steven Cooreman 0:559902e88130 8 *******************************************************************************
Steven Cooreman 0:559902e88130 9 *
Steven Cooreman 0:559902e88130 10 * This file is licensensed under the Silabs License Agreement. See the file
Steven Cooreman 0:559902e88130 11 * "Silabs_License_Agreement.txt" for details. Before using this software for
Steven Cooreman 0:559902e88130 12 * any purpose, you must agree to the terms of that agreement.
Steven Cooreman 0:559902e88130 13 *
Steven Cooreman 0:559902e88130 14 ******************************************************************************/
Steven Cooreman 0:559902e88130 15
Steven Cooreman 0:559902e88130 16 #ifndef __SEGMENTLCDCONFIG_H
Steven Cooreman 0:559902e88130 17 #define __SEGMENTLCDCONFIG_H
Steven Cooreman 0:559902e88130 18
Steven Cooreman 0:559902e88130 19 #include "em_lcd.h"
stevew817 6:114aa75da77b 20 #include "PinNames.h"
Steven Cooreman 0:559902e88130 21
Steven Cooreman 0:559902e88130 22 #ifdef __cplusplus
Steven Cooreman 0:559902e88130 23 extern "C" {
Steven Cooreman 0:559902e88130 24 #endif
Steven Cooreman 0:559902e88130 25
Steven Cooreman 0:559902e88130 26 /** Range of symbols available on display */
Steven Cooreman 0:559902e88130 27 typedef enum {
Steven Cooreman 0:559902e88130 28 LCD_SYMBOL_GECKO,
Steven Cooreman 0:559902e88130 29 LCD_SYMBOL_ANT,
Steven Cooreman 0:559902e88130 30 LCD_SYMBOL_PAD0,
Steven Cooreman 0:559902e88130 31 LCD_SYMBOL_PAD1,
Steven Cooreman 0:559902e88130 32 LCD_SYMBOL_EFM32,
Steven Cooreman 0:559902e88130 33 LCD_SYMBOL_MINUS,
Steven Cooreman 0:559902e88130 34 LCD_SYMBOL_COL3,
Steven Cooreman 0:559902e88130 35 LCD_SYMBOL_COL5,
Steven Cooreman 0:559902e88130 36 LCD_SYMBOL_COL10,
Steven Cooreman 0:559902e88130 37 LCD_SYMBOL_DEGC,
Steven Cooreman 0:559902e88130 38 LCD_SYMBOL_DEGF,
Steven Cooreman 0:559902e88130 39 LCD_SYMBOL_DP2,
Steven Cooreman 0:559902e88130 40 LCD_SYMBOL_DP3,
Steven Cooreman 0:559902e88130 41 LCD_SYMBOL_DP4,
Steven Cooreman 0:559902e88130 42 LCD_SYMBOL_DP5,
Steven Cooreman 0:559902e88130 43 LCD_SYMBOL_DP6,
Steven Cooreman 0:559902e88130 44 LCD_SYMBOL_DP10,
Steven Cooreman 0:559902e88130 45 } lcdSymbol;
Steven Cooreman 0:559902e88130 46
Steven Cooreman 0:559902e88130 47 #define LCD_SYMBOL_GECKO_COM 1
Steven Cooreman 0:559902e88130 48 #define LCD_SYMBOL_GECKO_SEG 12
Steven Cooreman 0:559902e88130 49 #define LCD_SYMBOL_ANT_COM 0
Steven Cooreman 0:559902e88130 50 #define LCD_SYMBOL_ANT_SEG 32
Steven Cooreman 0:559902e88130 51 #define LCD_SYMBOL_PAD0_COM 3
Steven Cooreman 0:559902e88130 52 #define LCD_SYMBOL_PAD0_SEG 39
Steven Cooreman 0:559902e88130 53 #define LCD_SYMBOL_PAD1_COM 2
Steven Cooreman 0:559902e88130 54 #define LCD_SYMBOL_PAD1_SEG 12
Steven Cooreman 0:559902e88130 55 #define LCD_SYMBOL_EFM32_COM 0
Steven Cooreman 0:559902e88130 56 #define LCD_SYMBOL_EFM32_SEG 28
Steven Cooreman 0:559902e88130 57 #define LCD_SYMBOL_MINUS_COM 3
Steven Cooreman 0:559902e88130 58 #define LCD_SYMBOL_MINUS_SEG 12
Steven Cooreman 0:559902e88130 59 #define LCD_SYMBOL_COL3_COM 4
Steven Cooreman 0:559902e88130 60 #define LCD_SYMBOL_COL3_SEG 12
Steven Cooreman 0:559902e88130 61 #define LCD_SYMBOL_COL5_COM 0
Steven Cooreman 0:559902e88130 62 #define LCD_SYMBOL_COL5_SEG 30
Steven Cooreman 0:559902e88130 63 #define LCD_SYMBOL_COL10_COM 5
Steven Cooreman 0:559902e88130 64 #define LCD_SYMBOL_COL10_SEG 39
Steven Cooreman 0:559902e88130 65 #define LCD_SYMBOL_DEGC_COM 0
Steven Cooreman 0:559902e88130 66 #define LCD_SYMBOL_DEGC_SEG 34
Steven Cooreman 0:559902e88130 67 #define LCD_SYMBOL_DEGF_COM 0
Steven Cooreman 0:559902e88130 68 #define LCD_SYMBOL_DEGF_SEG 35
Steven Cooreman 0:559902e88130 69 #define LCD_SYMBOL_DP2_COM 7
Steven Cooreman 0:559902e88130 70 #define LCD_SYMBOL_DP2_SEG 12
Steven Cooreman 0:559902e88130 71 #define LCD_SYMBOL_DP3_COM 5
Steven Cooreman 0:559902e88130 72 #define LCD_SYMBOL_DP3_SEG 12
Steven Cooreman 0:559902e88130 73 #define LCD_SYMBOL_DP4_COM 6
Steven Cooreman 0:559902e88130 74 #define LCD_SYMBOL_DP4_SEG 12
Steven Cooreman 0:559902e88130 75 #define LCD_SYMBOL_DP5_COM 7
Steven Cooreman 0:559902e88130 76 #define LCD_SYMBOL_DP5_SEG 29
Steven Cooreman 0:559902e88130 77 #define LCD_SYMBOL_DP6_COM 7
Steven Cooreman 0:559902e88130 78 #define LCD_SYMBOL_DP6_SEG 31
Steven Cooreman 0:559902e88130 79 #define LCD_SYMBOL_DP10_COM 4
Steven Cooreman 0:559902e88130 80 #define LCD_SYMBOL_DP10_SEG 39
Steven Cooreman 0:559902e88130 81
Steven Cooreman 0:559902e88130 82 /* LCD Controller Prescaler (divide LFACLK / 64) */
Steven Cooreman 0:559902e88130 83 /* LFACLK_LCDpre = 512 Hz */
Steven Cooreman 0:559902e88130 84 /* Set FDIV=0, means 512/1 = 512 Hz */
Steven Cooreman 0:559902e88130 85 /* With octaplex mode, 512/16 => 32 Hz Frame Rate */
Steven Cooreman 0:559902e88130 86 #define LCD_CMU_CLK_PRE cmuClkDiv_64
Steven Cooreman 0:559902e88130 87 #define LCD_CMU_CLK_DIV cmuClkDiv_1
Steven Cooreman 0:559902e88130 88
Steven Cooreman 0:559902e88130 89 #define LCD_BOOST_LEVEL lcdVBoostLevel3
Steven Cooreman 0:559902e88130 90
Steven Cooreman 0:559902e88130 91
Steven Cooreman 0:559902e88130 92 #define LCD_INIT_DEF \
Steven Cooreman 0:559902e88130 93 { true,\
Steven Cooreman 0:559902e88130 94 lcdMuxOctaplex,\
Steven Cooreman 0:559902e88130 95 lcdBiasOneFourth,\
Steven Cooreman 0:559902e88130 96 lcdWaveLowPower,\
Steven Cooreman 0:559902e88130 97 lcdVLCDSelVDD, \
Steven Cooreman 0:559902e88130 98 lcdConConfVLCD }
Steven Cooreman 0:559902e88130 99
Steven Cooreman 0:559902e88130 100 #define LCD_NUMBER_OFF() \
Steven Cooreman 0:559902e88130 101 do { \
Steven Cooreman 0:559902e88130 102 LCD_SegmentSetHigh(1, 0x00000078, 0x00000000); \
Steven Cooreman 0:559902e88130 103 LCD_SegmentSetHigh(2, 0x00000078, 0x00000000); \
Steven Cooreman 0:559902e88130 104 LCD_SegmentSetHigh(3, 0x00000078, 0x00000000); \
Steven Cooreman 0:559902e88130 105 LCD_SegmentSetHigh(4, 0x00000078, 0x00000000); \
Steven Cooreman 0:559902e88130 106 LCD_SegmentSetHigh(5, 0x00000078, 0x00000000); \
Steven Cooreman 0:559902e88130 107 LCD_SegmentSetHigh(6, 0x00000078, 0x00000000); \
Steven Cooreman 0:559902e88130 108 LCD_SegmentSetHigh(7, 0x00000078, 0x00000000); \
Steven Cooreman 0:559902e88130 109 } while (0)
Steven Cooreman 0:559902e88130 110
Steven Cooreman 0:559902e88130 111 #define LCD_ALPHA_NUMBER_OFF() \
Steven Cooreman 0:559902e88130 112 do { \
Steven Cooreman 0:559902e88130 113 LCD_SegmentSetLow(7, 0x500FE000, 0x00000000);\
Steven Cooreman 0:559902e88130 114 LCD_SegmentSetLow(6, 0xF00FE000, 0x00000000);\
Steven Cooreman 0:559902e88130 115 LCD_SegmentSetLow(5, 0xF00FE000, 0x00000000);\
Steven Cooreman 0:559902e88130 116 LCD_SegmentSetLow(4, 0xF00FE000, 0x00000000);\
Steven Cooreman 0:559902e88130 117 LCD_SegmentSetLow(3, 0xF00FE000, 0x00000000);\
Steven Cooreman 0:559902e88130 118 LCD_SegmentSetLow(2, 0xF00FE000, 0x00000000);\
Steven Cooreman 0:559902e88130 119 LCD_SegmentSetLow(1, 0xF00FE000, 0x00000000);\
Steven Cooreman 0:559902e88130 120 LCD_SegmentSetLow(0, 0xA0000000, 0x00000000);\
Steven Cooreman 0:559902e88130 121 LCD_SegmentSetHigh(7, 0x00000007, 0x00000000);\
Steven Cooreman 0:559902e88130 122 LCD_SegmentSetHigh(6, 0x00000007, 0x00000000);\
Steven Cooreman 0:559902e88130 123 LCD_SegmentSetHigh(5, 0x00000007, 0x00000000);\
Steven Cooreman 0:559902e88130 124 LCD_SegmentSetHigh(4, 0x00000007, 0x00000000);\
Steven Cooreman 0:559902e88130 125 LCD_SegmentSetHigh(3, 0x00000007, 0x00000000);\
Steven Cooreman 0:559902e88130 126 LCD_SegmentSetHigh(2, 0x00000007, 0x00000000);\
Steven Cooreman 0:559902e88130 127 LCD_SegmentSetHigh(1, 0x00000007, 0x00000000);\
Steven Cooreman 0:559902e88130 128 } while(0)
Steven Cooreman 0:559902e88130 129
Steven Cooreman 0:559902e88130 130 #define LCD_ALL_SEGMENTS_OFF() \
Steven Cooreman 0:559902e88130 131 do { \
Steven Cooreman 0:559902e88130 132 LCD_SegmentSetLow(0, 0xF00FF000, 0x00000000);\
Steven Cooreman 0:559902e88130 133 LCD_SegmentSetLow(1, 0xF00FF000, 0x00000000);\
Steven Cooreman 0:559902e88130 134 LCD_SegmentSetLow(2, 0xF00FF000, 0x00000000);\
Steven Cooreman 0:559902e88130 135 LCD_SegmentSetLow(3, 0xF00FF000, 0x00000000);\
Steven Cooreman 0:559902e88130 136 LCD_SegmentSetLow(4, 0xF00FF000, 0x00000000);\
Steven Cooreman 0:559902e88130 137 LCD_SegmentSetLow(5, 0xF00FF000, 0x00000000);\
Steven Cooreman 0:559902e88130 138 LCD_SegmentSetLow(6, 0xF00FF000, 0x00000000);\
Steven Cooreman 0:559902e88130 139 LCD_SegmentSetLow(7, 0xF00FF000, 0x00000000);\
Steven Cooreman 0:559902e88130 140 LCD_SegmentSetHigh(0, 0x000000FF, 0x00000000);\
Steven Cooreman 0:559902e88130 141 LCD_SegmentSetHigh(1, 0x000000FF, 0x00000000);\
Steven Cooreman 0:559902e88130 142 LCD_SegmentSetHigh(2, 0x000000FF, 0x00000000);\
Steven Cooreman 0:559902e88130 143 LCD_SegmentSetHigh(3, 0x000000FF, 0x00000000);\
Steven Cooreman 0:559902e88130 144 LCD_SegmentSetHigh(4, 0x000000FF, 0x00000000);\
Steven Cooreman 0:559902e88130 145 LCD_SegmentSetHigh(5, 0x000000FF, 0x00000000);\
Steven Cooreman 0:559902e88130 146 LCD_SegmentSetHigh(6, 0x000000FF, 0x00000000);\
Steven Cooreman 0:559902e88130 147 LCD_SegmentSetHigh(7, 0x000000FF, 0x00000000);\
Steven Cooreman 0:559902e88130 148 } while(0)
Steven Cooreman 0:559902e88130 149
Steven Cooreman 0:559902e88130 150 #define LCD_ALL_SEGMENTS_ON() \
Steven Cooreman 0:559902e88130 151 do { \
Steven Cooreman 0:559902e88130 152 LCD_SegmentSetLow(0, 0xF00FF000, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 153 LCD_SegmentSetLow(1, 0xF00FF000, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 154 LCD_SegmentSetLow(2, 0xF00FF000, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 155 LCD_SegmentSetLow(3, 0xF00FF000, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 156 LCD_SegmentSetLow(4, 0xF00FF000, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 157 LCD_SegmentSetLow(5, 0xF00FF000, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 158 LCD_SegmentSetLow(6, 0xF00FF000, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 159 LCD_SegmentSetLow(7, 0xF00FF000, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 160 LCD_SegmentSetHigh(0, 0x000000FF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 161 LCD_SegmentSetHigh(1, 0x000000FF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 162 LCD_SegmentSetHigh(2, 0x000000FF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 163 LCD_SegmentSetHigh(3, 0x000000FF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 164 LCD_SegmentSetHigh(4, 0x000000FF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 165 LCD_SegmentSetHigh(5, 0x000000FF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 166 LCD_SegmentSetHigh(6, 0x000000FF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 167 LCD_SegmentSetHigh(7, 0x000000FF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 168 } while(0)
Steven Cooreman 0:559902e88130 169
Steven Cooreman 0:559902e88130 170 #define LCD_SEGMENTS_ENABLE() \
Steven Cooreman 0:559902e88130 171 do { \
Steven Cooreman 0:559902e88130 172 LCD_SegmentRangeEnable(lcdSegment12_15, true);\
Steven Cooreman 0:559902e88130 173 LCD_SegmentRangeEnable(lcdSegment16_19, true);\
Steven Cooreman 0:559902e88130 174 LCD_SegmentRangeEnable(lcdSegment28_31, true);\
Steven Cooreman 0:559902e88130 175 LCD_SegmentRangeEnable(lcdSegment32_35, true);\
Steven Cooreman 0:559902e88130 176 LCD_SegmentRangeEnable(lcdSegment36_39, true);\
Steven Cooreman 0:559902e88130 177 } while(0)
Steven Cooreman 0:559902e88130 178
Steven Cooreman 0:559902e88130 179 #define LCD_DISPLAY_ENABLE() \
Steven Cooreman 0:559902e88130 180 do { \
Steven Cooreman 0:559902e88130 181 ;\
Steven Cooreman 0:559902e88130 182 } while(0)
Steven Cooreman 0:559902e88130 183
Steven Cooreman 0:559902e88130 184 #define EFM_DISPLAY_DEF {\
Steven Cooreman 0:559902e88130 185 .Text = {\
Steven Cooreman 0:559902e88130 186 { /* 1 */\
Steven Cooreman 0:559902e88130 187 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 188 .bit[0] = 13, .bit[1] = 14, .bit[2] = 14, .bit[3] = 14,\
Steven Cooreman 0:559902e88130 189 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\
Steven Cooreman 0:559902e88130 190 .bit[4] = 13, .bit[5] = 13, .bit[6] = 13, .bit[7] = 13,\
Steven Cooreman 0:559902e88130 191 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 192 .bit[8] = 14, .bit[9] = 14, .bit[10] = 14, .bit[11] = 14,\
Steven Cooreman 0:559902e88130 193 .com[12] = 5, .com[13] = 6,\
Steven Cooreman 0:559902e88130 194 .bit[12] = 13, .bit[13] = 13\
Steven Cooreman 0:559902e88130 195 },\
Steven Cooreman 0:559902e88130 196 { /* 2 */\
Steven Cooreman 0:559902e88130 197 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 198 .bit[0] = 15, .bit[1] = 16, .bit[2] = 16, .bit[3] = 16,\
Steven Cooreman 0:559902e88130 199 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\
Steven Cooreman 0:559902e88130 200 .bit[4] = 15, .bit[5] = 15, .bit[6] = 15, .bit[7] = 15,\
Steven Cooreman 0:559902e88130 201 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 202 .bit[8] = 16, .bit[9] = 16, .bit[10] = 16, .bit[11] = 16,\
Steven Cooreman 0:559902e88130 203 .com[12] = 5, .com[13] = 6,\
Steven Cooreman 0:559902e88130 204 .bit[12] = 15, .bit[13] = 15\
Steven Cooreman 0:559902e88130 205 },\
Steven Cooreman 0:559902e88130 206 { /* 3 */\
Steven Cooreman 0:559902e88130 207 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 208 .bit[0] = 17, .bit[1] = 18, .bit[2] = 18, .bit[3] = 18,\
Steven Cooreman 0:559902e88130 209 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\
Steven Cooreman 0:559902e88130 210 .bit[4] = 17, .bit[5] = 17, .bit[6] = 17, .bit[7] = 17,\
Steven Cooreman 0:559902e88130 211 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 212 .bit[8] = 18, .bit[9] = 18, .bit[10] = 18, .bit[11] = 18,\
Steven Cooreman 0:559902e88130 213 .com[12] = 5, .com[13] = 6,\
Steven Cooreman 0:559902e88130 214 .bit[12] = 17, .bit[13] = 17\
Steven Cooreman 0:559902e88130 215 },\
Steven Cooreman 0:559902e88130 216 { /* 4 */\
Steven Cooreman 0:559902e88130 217 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 218 .bit[0] = 19, .bit[1] = 28, .bit[2] = 28, .bit[3] = 28,\
Steven Cooreman 0:559902e88130 219 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\
Steven Cooreman 0:559902e88130 220 .bit[4] = 19, .bit[5] = 19, .bit[6] = 19, .bit[7] = 19,\
Steven Cooreman 0:559902e88130 221 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 222 .bit[8] = 28, .bit[9] = 28, .bit[10] = 28, .bit[11] = 28,\
Steven Cooreman 0:559902e88130 223 .com[12] = 5, .com[13] = 6,\
Steven Cooreman 0:559902e88130 224 .bit[12] = 19, .bit[13] = 19\
Steven Cooreman 0:559902e88130 225 },\
Steven Cooreman 0:559902e88130 226 { /* 5 */\
Steven Cooreman 0:559902e88130 227 .com[0] = 0, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 228 .bit[0] = 29, .bit[1] = 30, .bit[2] = 30, .bit[3] = 30,\
Steven Cooreman 0:559902e88130 229 .com[4] = 6, .com[5] = 2, .com[6] = 3, .com[7] = 1,\
Steven Cooreman 0:559902e88130 230 .bit[4] = 29, .bit[5] = 29, .bit[6] = 29, .bit[7] = 29,\
Steven Cooreman 0:559902e88130 231 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 232 .bit[8] = 30, .bit[9] = 30, .bit[10] = 30, .bit[11] = 30,\
Steven Cooreman 0:559902e88130 233 .com[12] = 4, .com[13] = 5,\
Steven Cooreman 0:559902e88130 234 .bit[12] = 29, .bit[13] = 29\
Steven Cooreman 0:559902e88130 235 },\
Steven Cooreman 0:559902e88130 236 { /* 6 */\
Steven Cooreman 0:559902e88130 237 .com[0] = 0, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 238 .bit[0] = 31, .bit[1] = 32, .bit[2] = 32, .bit[3] = 32,\
Steven Cooreman 0:559902e88130 239 .com[4] = 6, .com[5] = 2, .com[6] = 3, .com[7] = 1,\
Steven Cooreman 0:559902e88130 240 .bit[4] = 31, .bit[5] = 31, .bit[6] = 31, .bit[7] = 31,\
Steven Cooreman 0:559902e88130 241 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 242 .bit[8] = 32, .bit[9] = 32, .bit[10] = 32, .bit[11] = 32,\
Steven Cooreman 0:559902e88130 243 .com[12] = 4, .com[13] = 5,\
Steven Cooreman 0:559902e88130 244 .bit[12] = 31, .bit[13] = 31\
Steven Cooreman 0:559902e88130 245 },\
Steven Cooreman 0:559902e88130 246 { /* 7 */\
Steven Cooreman 0:559902e88130 247 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 248 .bit[0] = 33, .bit[1] = 34, .bit[2] = 34, .bit[3] = 34,\
Steven Cooreman 0:559902e88130 249 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\
Steven Cooreman 0:559902e88130 250 .bit[4] = 33, .bit[5] = 33, .bit[6] = 33, .bit[7] = 33,\
Steven Cooreman 0:559902e88130 251 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 252 .bit[8] = 34, .bit[9] = 34, .bit[10] = 34, .bit[11] = 34,\
Steven Cooreman 0:559902e88130 253 .com[12] = 5, .com[13] = 6,\
Steven Cooreman 0:559902e88130 254 .bit[12] = 33, .bit[13] = 33\
Steven Cooreman 0:559902e88130 255 },\
Steven Cooreman 0:559902e88130 256 },\
Steven Cooreman 0:559902e88130 257 .Number = {\
Steven Cooreman 0:559902e88130 258 {\
Steven Cooreman 0:559902e88130 259 .com[0] = 7, .com[1] = 5, .com[2] = 2, .com[3] = 1,\
Steven Cooreman 0:559902e88130 260 .bit[0] = 35, .bit[1] = 35, .bit[2] = 35, .bit[3] = 35,\
Steven Cooreman 0:559902e88130 261 .com[4] = 3, .com[5] = 6, .com[6] = 4,\
Steven Cooreman 0:559902e88130 262 .bit[4] = 35, .bit[5] = 35, .bit[6] = 35,\
Steven Cooreman 0:559902e88130 263 },\
Steven Cooreman 0:559902e88130 264 {\
Steven Cooreman 0:559902e88130 265 .com[0] = 7, .com[1] = 5, .com[2] = 2, .com[3] = 1,\
Steven Cooreman 0:559902e88130 266 .bit[0] = 36, .bit[1] = 36, .bit[2] = 36, .bit[3] = 36,\
Steven Cooreman 0:559902e88130 267 .com[4] = 3, .com[5] = 6, .com[6] = 4,\
Steven Cooreman 0:559902e88130 268 .bit[4] = 36, .bit[5] = 36, .bit[6] = 36,\
Steven Cooreman 0:559902e88130 269 },\
Steven Cooreman 0:559902e88130 270 {\
Steven Cooreman 0:559902e88130 271 .com[0] = 7, .com[1] = 5, .com[2] = 2, .com[3] = 1,\
Steven Cooreman 0:559902e88130 272 .bit[0] = 37, .bit[1] = 37, .bit[2] = 37, .bit[3] = 37,\
Steven Cooreman 0:559902e88130 273 .com[4] = 3, .com[5] = 6, .com[6] = 4,\
Steven Cooreman 0:559902e88130 274 .bit[4] = 37, .bit[5] = 37, .bit[6] = 37,\
Steven Cooreman 0:559902e88130 275 },\
Steven Cooreman 0:559902e88130 276 {\
Steven Cooreman 0:559902e88130 277 .com[0] = 7, .com[1] = 5, .com[2] = 2, .com[3] = 1,\
Steven Cooreman 0:559902e88130 278 .bit[0] = 38, .bit[1] = 38, .bit[2] = 38, .bit[3] = 38,\
Steven Cooreman 0:559902e88130 279 .com[4] = 3, .com[5] = 6, .com[6] = 4,\
Steven Cooreman 0:559902e88130 280 .bit[4] = 38, .bit[5] = 38, .bit[6] = 38,\
Steven Cooreman 0:559902e88130 281 },\
Steven Cooreman 0:559902e88130 282 },\
Steven Cooreman 0:559902e88130 283 .EMode = {\
Steven Cooreman 0:559902e88130 284 .com[0] = 0, .bit[0] = 39,\
Steven Cooreman 0:559902e88130 285 .com[1] = 1, .bit[1] = 39,\
Steven Cooreman 0:559902e88130 286 .com[2] = 7, .bit[2] = 39,\
Steven Cooreman 0:559902e88130 287 .com[3] = 2, .bit[3] = 39,\
Steven Cooreman 0:559902e88130 288 .com[4] = 6, .bit[4] = 39,\
Steven Cooreman 0:559902e88130 289 },\
Steven Cooreman 0:559902e88130 290 .ARing = {\
Steven Cooreman 0:559902e88130 291 .com[0] = 0, .bit[0] = 19,\
Steven Cooreman 0:559902e88130 292 .com[1] = 0, .bit[1] = 18,\
Steven Cooreman 0:559902e88130 293 .com[2] = 0, .bit[2] = 17,\
Steven Cooreman 0:559902e88130 294 .com[3] = 0, .bit[3] = 16,\
Steven Cooreman 0:559902e88130 295 .com[4] = 0, .bit[4] = 15,\
Steven Cooreman 0:559902e88130 296 .com[5] = 0, .bit[5] = 14,\
Steven Cooreman 0:559902e88130 297 .com[6] = 0, .bit[6] = 13,\
Steven Cooreman 0:559902e88130 298 .com[7] = 0, .bit[7] = 12,\
Steven Cooreman 0:559902e88130 299 },\
Steven Cooreman 0:559902e88130 300 .Battery = {\
Steven Cooreman 0:559902e88130 301 .com[0] = 0, .bit[0] = 33,\
Steven Cooreman 0:559902e88130 302 .com[1] = 0, .bit[1] = 37,\
Steven Cooreman 0:559902e88130 303 .com[2] = 0, .bit[2] = 36,\
Steven Cooreman 0:559902e88130 304 .com[3] = 0, .bit[3] = 38,\
Steven Cooreman 0:559902e88130 305 }\
Steven Cooreman 0:559902e88130 306 }
Steven Cooreman 0:559902e88130 307
Steven Cooreman 0:559902e88130 308 static const PinName outPins[] = {
Steven Cooreman 0:559902e88130 309 /* SEG28..39 */
Steven Cooreman 0:559902e88130 310 PA7, //LCD_SEG35
Steven Cooreman 0:559902e88130 311 PA8, //LCD_SEG36
Steven Cooreman 0:559902e88130 312 PA9, //LCD_SEG37
Steven Cooreman 0:559902e88130 313 PA10, //LCD_SEG38
Steven Cooreman 0:559902e88130 314 PA11, //LCD_SEG39
Steven Cooreman 0:559902e88130 315 PB0, //LCD_SEG32
Steven Cooreman 0:559902e88130 316 PB1, //LCD_SEG33
Steven Cooreman 0:559902e88130 317 PB2, //LCD_SEG34
Steven Cooreman 0:559902e88130 318 PD9, //LCD_SEG28
Steven Cooreman 0:559902e88130 319 PD10, //LCD_SEG29
Steven Cooreman 0:559902e88130 320 PD11, //LCD_SEG30
Steven Cooreman 0:559902e88130 321 PD12, //LCD_SEG31
Steven Cooreman 0:559902e88130 322 /* SEG12..19 */
Steven Cooreman 0:559902e88130 323 PA0, //LCD_SEG13
Steven Cooreman 0:559902e88130 324 PA1, //LCD_SEG14
Steven Cooreman 0:559902e88130 325 PA2, //LCD_SEG15
Steven Cooreman 0:559902e88130 326 PA3, //LCD_SEG16
Steven Cooreman 0:559902e88130 327 PA4, //LCD_SEG17
Steven Cooreman 0:559902e88130 328 PA5, //LCD_SEG18
Steven Cooreman 0:559902e88130 329 PA6, //LCD_SEG19
Steven Cooreman 0:559902e88130 330 PA15, //LCD_SEG12
Steven Cooreman 0:559902e88130 331 /* COM4..7 */
Steven Cooreman 0:559902e88130 332 PB3, //LCD_COM4
Steven Cooreman 0:559902e88130 333 PB4, //LCD_COM5
Steven Cooreman 0:559902e88130 334 PB5, //LCD_COM6
Steven Cooreman 0:559902e88130 335 PB6, //LCD_COM7
Steven Cooreman 0:559902e88130 336 /* COM0..3 */
Steven Cooreman 0:559902e88130 337 PE4, //LCD_COM0
Steven Cooreman 0:559902e88130 338 PE5, //LCD_COM1
Steven Cooreman 0:559902e88130 339 PE6, //LCD_COM2
Steven Cooreman 0:559902e88130 340 PE7 //LCD_COM3
Steven Cooreman 0:559902e88130 341 };
Steven Cooreman 0:559902e88130 342
Steven Cooreman 0:559902e88130 343 #ifdef __cplusplus
Steven Cooreman 0:559902e88130 344 }
Steven Cooreman 0:559902e88130 345 #endif
Steven Cooreman 0:559902e88130 346
Steven Cooreman 0:559902e88130 347 #endif