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 Gecko STK (G8xx_STK)
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"
Steven Cooreman 0:559902e88130 20
Steven Cooreman 0:559902e88130 21 #ifdef __cplusplus
Steven Cooreman 0:559902e88130 22 extern "C" {
Steven Cooreman 0:559902e88130 23 #endif
Steven Cooreman 0:559902e88130 24
Steven Cooreman 0:559902e88130 25 /** Range of symbols available on display */
Steven Cooreman 0:559902e88130 26 typedef enum
Steven Cooreman 0:559902e88130 27 {
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_AM,
Steven Cooreman 0:559902e88130 33 LCD_SYMBOL_PM,
Steven Cooreman 0:559902e88130 34 LCD_SYMBOL_EFM32,
Steven Cooreman 0:559902e88130 35 LCD_SYMBOL_MINUS,
Steven Cooreman 0:559902e88130 36 LCD_SYMBOL_COL3,
Steven Cooreman 0:559902e88130 37 LCD_SYMBOL_COL5,
Steven Cooreman 0:559902e88130 38 LCD_SYMBOL_COL10,
Steven Cooreman 0:559902e88130 39 LCD_SYMBOL_DEGC,
Steven Cooreman 0:559902e88130 40 LCD_SYMBOL_DEGF,
Steven Cooreman 0:559902e88130 41 LCD_SYMBOL_MICROAMP,
Steven Cooreman 0:559902e88130 42 LCD_SYMBOL_MILLIAMP,
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
Steven Cooreman 0:559902e88130 48 #define LCD_SYMBOL_GECKO_COM 3
Steven Cooreman 0:559902e88130 49 #define LCD_SYMBOL_GECKO_SEG 8
Steven Cooreman 0:559902e88130 50 #define LCD_SYMBOL_ANT_COM 3
Steven Cooreman 0:559902e88130 51 #define LCD_SYMBOL_ANT_SEG 1
Steven Cooreman 0:559902e88130 52 #define LCD_SYMBOL_PAD0_COM 1
Steven Cooreman 0:559902e88130 53 #define LCD_SYMBOL_PAD0_SEG 8
Steven Cooreman 0:559902e88130 54 #define LCD_SYMBOL_PAD1_COM 2
Steven Cooreman 0:559902e88130 55 #define LCD_SYMBOL_PAD1_SEG 8
Steven Cooreman 0:559902e88130 56 #define LCD_SYMBOL_AM_COM 0
Steven Cooreman 0:559902e88130 57 #define LCD_SYMBOL_AM_SEG 32
Steven Cooreman 0:559902e88130 58 #define LCD_SYMBOL_PM_COM 0
Steven Cooreman 0:559902e88130 59 #define LCD_SYMBOL_PM_SEG 35
Steven Cooreman 0:559902e88130 60 #define LCD_SYMBOL_EFM32_COM 0
Steven Cooreman 0:559902e88130 61 #define LCD_SYMBOL_EFM32_SEG 8
Steven Cooreman 0:559902e88130 62 #define LCD_SYMBOL_MINUS_COM 0
Steven Cooreman 0:559902e88130 63 #define LCD_SYMBOL_MINUS_SEG 9
Steven Cooreman 0:559902e88130 64 #define LCD_SYMBOL_COL3_COM 0
Steven Cooreman 0:559902e88130 65 #define LCD_SYMBOL_COL3_SEG 16
Steven Cooreman 0:559902e88130 66 #define LCD_SYMBOL_COL5_COM 0
Steven Cooreman 0:559902e88130 67 #define LCD_SYMBOL_COL5_SEG 24
Steven Cooreman 0:559902e88130 68 #define LCD_SYMBOL_COL10_COM 0
Steven Cooreman 0:559902e88130 69 #define LCD_SYMBOL_COL10_SEG 39
Steven Cooreman 0:559902e88130 70 #define LCD_SYMBOL_DEGC_COM 0
Steven Cooreman 0:559902e88130 71 #define LCD_SYMBOL_DEGC_SEG 34
Steven Cooreman 0:559902e88130 72 #define LCD_SYMBOL_DEGF_COM 1
Steven Cooreman 0:559902e88130 73 #define LCD_SYMBOL_DEGF_SEG 34
Steven Cooreman 0:559902e88130 74 #define LCD_SYMBOL_MICROAMP_COM 2
Steven Cooreman 0:559902e88130 75 #define LCD_SYMBOL_MICROAMP_SEG 34
Steven Cooreman 0:559902e88130 76 #define LCD_SYMBOL_MILLIAMP_COM 3
Steven Cooreman 0:559902e88130 77 #define LCD_SYMBOL_MILLIAMP_SEG 34
Steven Cooreman 0:559902e88130 78 #define LCD_SYMBOL_DP6_COM 0
Steven Cooreman 0:559902e88130 79 #define LCD_SYMBOL_DP6_SEG 21
Steven Cooreman 0:559902e88130 80 #define LCD_SYMBOL_DP10_COM 0
Steven Cooreman 0:559902e88130 81 #define LCD_SYMBOL_DP10_SEG 37
Steven Cooreman 0:559902e88130 82
Steven Cooreman 0:559902e88130 83 /* LCD Controller Prescaler (divide by 128) */
Steven Cooreman 0:559902e88130 84 /* CLKlcd = 256 Hz */
Steven Cooreman 0:559902e88130 85 #define LCD_CMU_CLK_PRE cmuClkDiv_128
Steven Cooreman 0:559902e88130 86 #define LCD_CMU_CLK_DIV 0
Steven Cooreman 0:559902e88130 87
Steven Cooreman 0:559902e88130 88 #define LCD_BOOST_LEVEL lcdVBoostLevel0
Steven Cooreman 0:559902e88130 89
Steven Cooreman 0:559902e88130 90 #define LCD_INIT_DEF \
Steven Cooreman 0:559902e88130 91 { true,\
Steven Cooreman 0:559902e88130 92 lcdMuxQuadruplex,\
Steven Cooreman 0:559902e88130 93 lcdBiasOneThird,\
Steven Cooreman 0:559902e88130 94 lcdWaveLowPower,\
Steven Cooreman 0:559902e88130 95 lcdVLCDSelVDD,\
Steven Cooreman 0:559902e88130 96 lcdConConfVLCD }
Steven Cooreman 0:559902e88130 97
Steven Cooreman 0:559902e88130 98 #define LCD_NUMBER_OFF() \
Steven Cooreman 0:559902e88130 99 do { \
Steven Cooreman 0:559902e88130 100 LCD_SegmentSetLow(0, 0x80000000, 0x00000000);\
Steven Cooreman 0:559902e88130 101 LCD_SegmentSetLow(1, 0x80000000, 0x00000000);\
Steven Cooreman 0:559902e88130 102 LCD_SegmentSetLow(2, 0x80000000, 0x00000000);\
Steven Cooreman 0:559902e88130 103 LCD_SegmentSetLow(3, 0x80000000, 0x00000000);\
Steven Cooreman 0:559902e88130 104 LCD_SegmentSetHigh(0, 0x52, 0x00000000);\
Steven Cooreman 0:559902e88130 105 LCD_SegmentSetHigh(1, 0xFB, 0x00000000);\
Steven Cooreman 0:559902e88130 106 LCD_SegmentSetHigh(2, 0xFB, 0x00000000);\
Steven Cooreman 0:559902e88130 107 LCD_SegmentSetHigh(3, 0xFB, 0x00000000);\
Steven Cooreman 0:559902e88130 108 } while (0)
Steven Cooreman 0:559902e88130 109
Steven Cooreman 0:559902e88130 110 #define LCD_ALPHA_NUMBER_OFF() \
Steven Cooreman 0:559902e88130 111 do { \
Steven Cooreman 0:559902e88130 112 LCD_SegmentSetLow(0, 0x7ECCCC00, 0x00000000);\
Steven Cooreman 0:559902e88130 113 LCD_SegmentSetLow(1, 0x7FFFFEFC, 0x00000000);\
Steven Cooreman 0:559902e88130 114 LCD_SegmentSetLow(2, 0x7FFFFEFC, 0x00000000);\
Steven Cooreman 0:559902e88130 115 LCD_SegmentSetLow(3, 0x7FFFFEFC, 0x00000000);\
Steven Cooreman 0:559902e88130 116 } while(0)
Steven Cooreman 0:559902e88130 117
Steven Cooreman 0:559902e88130 118 #define LCD_ALL_SEGMENTS_OFF() \
Steven Cooreman 0:559902e88130 119 do { \
Steven Cooreman 0:559902e88130 120 LCD_SegmentSetLow(0, 0xFFFFFFFF, 0x00000000);\
Steven Cooreman 0:559902e88130 121 LCD_SegmentSetLow(1, 0xFFFFFFFF, 0x00000000);\
Steven Cooreman 0:559902e88130 122 LCD_SegmentSetLow(2, 0xFFFFFFFF, 0x00000000);\
Steven Cooreman 0:559902e88130 123 LCD_SegmentSetLow(3, 0xFFFFFFFF, 0x00000000);\
Steven Cooreman 0:559902e88130 124 LCD_SegmentSetHigh(0, 0xFF, 0x00000000);\
Steven Cooreman 0:559902e88130 125 LCD_SegmentSetHigh(1, 0xFF, 0x00000000);\
Steven Cooreman 0:559902e88130 126 LCD_SegmentSetHigh(2, 0xFF, 0x00000000);\
Steven Cooreman 0:559902e88130 127 LCD_SegmentSetHigh(3, 0xFF, 0x00000000);\
Steven Cooreman 0:559902e88130 128 } while(0)
Steven Cooreman 0:559902e88130 129
Steven Cooreman 0:559902e88130 130 #define LCD_ALL_SEGMENTS_ON() \
Steven Cooreman 0:559902e88130 131 do { \
Steven Cooreman 0:559902e88130 132 LCD_SegmentSetLow(0, 0xFFFFFFFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 133 LCD_SegmentSetLow(1, 0xFFFFFFFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 134 LCD_SegmentSetLow(2, 0xFFFFFFFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 135 LCD_SegmentSetLow(3, 0xFFFFFFFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 136 LCD_SegmentSetHigh(0, 0xFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 137 LCD_SegmentSetHigh(1, 0xFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 138 LCD_SegmentSetHigh(2, 0xFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 139 LCD_SegmentSetHigh(3, 0xFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 140 } while(0)
Steven Cooreman 0:559902e88130 141
Steven Cooreman 0:559902e88130 142 #define LCD_SEGMENTS_ENABLE() \
Steven Cooreman 0:559902e88130 143 do { \
Steven Cooreman 0:559902e88130 144 LCD_SegmentRangeEnable(lcdSegmentAll, true);\
Steven Cooreman 0:559902e88130 145 } while(0)
Steven Cooreman 0:559902e88130 146
Steven Cooreman 0:559902e88130 147 #define LCD_DISPLAY_ENABLE() \
Steven Cooreman 0:559902e88130 148 do { \
Steven Cooreman 0:559902e88130 149 ;\
Steven Cooreman 0:559902e88130 150 } while(0)
Steven Cooreman 0:559902e88130 151
Steven Cooreman 0:559902e88130 152 #define EFM_DISPLAY_DEF {\
Steven Cooreman 0:559902e88130 153 .Text = {\
Steven Cooreman 0:559902e88130 154 { /* 1 */\
Steven Cooreman 0:559902e88130 155 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\
Steven Cooreman 0:559902e88130 156 .bit[0] = 10, .bit[1] = 12, .bit[2] = 12, .bit[3] = 10,\
Steven Cooreman 0:559902e88130 157 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\
Steven Cooreman 0:559902e88130 158 .bit[4] = 9, .bit[5] = 9, .bit[6] = 9, .bit[7] = 10,\
Steven Cooreman 0:559902e88130 159 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\
Steven Cooreman 0:559902e88130 160 .bit[8] = 11, .bit[9] = 11, .bit[10] = 12, .bit[11] = 11,\
Steven Cooreman 0:559902e88130 161 .com[12] = 1, .com[13] = 1,\
Steven Cooreman 0:559902e88130 162 .bit[12] = 11, .bit[13] = 10\
Steven Cooreman 0:559902e88130 163 },\
Steven Cooreman 0:559902e88130 164 { /* 2 */\
Steven Cooreman 0:559902e88130 165 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\
Steven Cooreman 0:559902e88130 166 .bit[0] = 14, .bit[1] = 16, .bit[2] = 16, .bit[3] = 14,\
Steven Cooreman 0:559902e88130 167 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\
Steven Cooreman 0:559902e88130 168 .bit[4] = 13, .bit[5] = 13, .bit[6] = 13, .bit[7] = 14,\
Steven Cooreman 0:559902e88130 169 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\
Steven Cooreman 0:559902e88130 170 .bit[8] = 15, .bit[9] = 15, .bit[10] = 16, .bit[11] = 15,\
Steven Cooreman 0:559902e88130 171 .com[12] = 1, .com[13] = 1,\
Steven Cooreman 0:559902e88130 172 .bit[12] = 15, .bit[13] = 14\
Steven Cooreman 0:559902e88130 173 },\
Steven Cooreman 0:559902e88130 174 { /* 3 */\
Steven Cooreman 0:559902e88130 175 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\
Steven Cooreman 0:559902e88130 176 .bit[0] = 18, .bit[1] = 20, .bit[2] = 20, .bit[3] = 18,\
Steven Cooreman 0:559902e88130 177 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\
Steven Cooreman 0:559902e88130 178 .bit[4] = 17, .bit[5] = 17, .bit[6] = 17, .bit[7] = 18,\
Steven Cooreman 0:559902e88130 179 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\
Steven Cooreman 0:559902e88130 180 .bit[8] = 19, .bit[9] = 19, .bit[10] = 20, .bit[11] = 19,\
Steven Cooreman 0:559902e88130 181 .com[12] = 1, .com[13] = 1,\
Steven Cooreman 0:559902e88130 182 .bit[12] = 19, .bit[13] = 18\
Steven Cooreman 0:559902e88130 183 },\
Steven Cooreman 0:559902e88130 184 { /* 4 */\
Steven Cooreman 0:559902e88130 185 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\
Steven Cooreman 0:559902e88130 186 .bit[0] = 22, .bit[1] = 24, .bit[2] = 24, .bit[3] = 22,\
Steven Cooreman 0:559902e88130 187 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\
Steven Cooreman 0:559902e88130 188 .bit[4] = 21, .bit[5] = 21, .bit[6] = 21, .bit[7] = 22,\
Steven Cooreman 0:559902e88130 189 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\
Steven Cooreman 0:559902e88130 190 .bit[8] = 23, .bit[9] = 23, .bit[10] = 24, .bit[11] = 23,\
Steven Cooreman 0:559902e88130 191 .com[12] = 1, .com[13] = 1,\
Steven Cooreman 0:559902e88130 192 .bit[12] = 23, .bit[13] = 22\
Steven Cooreman 0:559902e88130 193 },\
Steven Cooreman 0:559902e88130 194 { /* 5 */\
Steven Cooreman 0:559902e88130 195 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\
Steven Cooreman 0:559902e88130 196 .bit[0] = 25, .bit[1] = 6, .bit[2] = 6, .bit[3] = 25,\
Steven Cooreman 0:559902e88130 197 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\
Steven Cooreman 0:559902e88130 198 .bit[4] = 7, .bit[5] = 7, .bit[6] = 7, .bit[7] = 25,\
Steven Cooreman 0:559902e88130 199 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\
Steven Cooreman 0:559902e88130 200 .bit[8] = 26, .bit[9] = 26, .bit[10] = 6, .bit[11] = 26,\
Steven Cooreman 0:559902e88130 201 .com[12] = 1, .com[13] = 1,\
Steven Cooreman 0:559902e88130 202 .bit[12] = 26, .bit[13] = 25\
Steven Cooreman 0:559902e88130 203 },\
Steven Cooreman 0:559902e88130 204 { /* 6 */\
Steven Cooreman 0:559902e88130 205 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\
Steven Cooreman 0:559902e88130 206 .bit[0] = 27, .bit[1] = 04, .bit[2] = 04, .bit[3] = 27,\
Steven Cooreman 0:559902e88130 207 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\
Steven Cooreman 0:559902e88130 208 .bit[4] = 5, .bit[5] = 5, .bit[6] = 5, .bit[7] = 27,\
Steven Cooreman 0:559902e88130 209 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\
Steven Cooreman 0:559902e88130 210 .bit[8] = 28, .bit[9] = 28, .bit[10] = 4, .bit[11] = 28,\
Steven Cooreman 0:559902e88130 211 .com[12] = 1, .com[13] = 1,\
Steven Cooreman 0:559902e88130 212 .bit[12] = 28, .bit[13] = 27\
Steven Cooreman 0:559902e88130 213 },\
Steven Cooreman 0:559902e88130 214 { /* 7 */\
Steven Cooreman 0:559902e88130 215 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\
Steven Cooreman 0:559902e88130 216 .bit[0] = 29, .bit[1] = 2, .bit[2] = 2, .bit[3] = 29,\
Steven Cooreman 0:559902e88130 217 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\
Steven Cooreman 0:559902e88130 218 .bit[4] = 03, .bit[5] = 3, .bit[6] = 3, .bit[7] = 29,\
Steven Cooreman 0:559902e88130 219 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\
Steven Cooreman 0:559902e88130 220 .bit[8] = 30, .bit[9] = 30, .bit[10] = 2, .bit[11] = 30,\
Steven Cooreman 0:559902e88130 221 .com[12] = 1, .com[13] = 1,\
Steven Cooreman 0:559902e88130 222 .bit[12] = 30, .bit[13] = 29\
Steven Cooreman 0:559902e88130 223 }\
Steven Cooreman 0:559902e88130 224 },\
Steven Cooreman 0:559902e88130 225 .Number = {\
Steven Cooreman 0:559902e88130 226 {\
Steven Cooreman 0:559902e88130 227 .com[0] = 3, .com[1] = 2, .com[2] = 1, .com[3] = 0,\
Steven Cooreman 0:559902e88130 228 .bit[0] = 31, .bit[1] = 31, .bit[2] = 31, .bit[3] = 31,\
Steven Cooreman 0:559902e88130 229 .com[4] = 1, .com[5] = 3, .com[6] = 2,\
Steven Cooreman 0:559902e88130 230 .bit[4] = 32, .bit[5] = 32, .bit[6] = 32,\
Steven Cooreman 0:559902e88130 231 },\
Steven Cooreman 0:559902e88130 232 {\
Steven Cooreman 0:559902e88130 233 .com[0] = 3, .com[1] = 2, .com[2] = 1, .com[3] = 0,\
Steven Cooreman 0:559902e88130 234 .bit[0] = 33, .bit[1] = 33, .bit[2] = 33, .bit[3] = 33,\
Steven Cooreman 0:559902e88130 235 .com[4] = 1, .com[5] = 3, .com[6] = 2,\
Steven Cooreman 0:559902e88130 236 .bit[4] = 35, .bit[5] = 35, .bit[6] = 35,\
Steven Cooreman 0:559902e88130 237 },\
Steven Cooreman 0:559902e88130 238 {\
Steven Cooreman 0:559902e88130 239 .com[0] = 3, .com[1] = 2, .com[2] = 1, .com[3] = 0,\
Steven Cooreman 0:559902e88130 240 .bit[0] = 36, .bit[1] = 36, .bit[2] = 36, .bit[3] = 36,\
Steven Cooreman 0:559902e88130 241 .com[4] = 1, .com[5] = 3, .com[6] = 2,\
Steven Cooreman 0:559902e88130 242 .bit[4] = 37, .bit[5] = 37, .bit[6] = 37,\
Steven Cooreman 0:559902e88130 243 },\
Steven Cooreman 0:559902e88130 244 {\
Steven Cooreman 0:559902e88130 245 .com[0] = 3, .com[1] = 2, .com[2] = 1, .com[3] = 0,\
Steven Cooreman 0:559902e88130 246 .bit[0] = 38, .bit[1] = 38, .bit[2] = 38, .bit[3] = 38,\
Steven Cooreman 0:559902e88130 247 .com[4] = 1, .com[5] = 3, .com[6] = 2,\
Steven Cooreman 0:559902e88130 248 .bit[4] = 39, .bit[5] = 39, .bit[6] = 39,\
Steven Cooreman 0:559902e88130 249 },\
Steven Cooreman 0:559902e88130 250 },\
Steven Cooreman 0:559902e88130 251 .EMode = {\
Steven Cooreman 0:559902e88130 252 .com[0] = 1, .bit[0] = 1,\
Steven Cooreman 0:559902e88130 253 .com[1] = 2, .bit[1] = 1,\
Steven Cooreman 0:559902e88130 254 .com[2] = 1, .bit[2] = 0,\
Steven Cooreman 0:559902e88130 255 .com[3] = 2, .bit[3] = 0,\
Steven Cooreman 0:559902e88130 256 .com[4] = 3, .bit[4] = 0,\
Steven Cooreman 0:559902e88130 257 },\
Steven Cooreman 0:559902e88130 258 .ARing = {\
Steven Cooreman 0:559902e88130 259 .com[0] = 0, .bit[0] = 0,\
Steven Cooreman 0:559902e88130 260 .com[1] = 0, .bit[1] = 1,\
Steven Cooreman 0:559902e88130 261 .com[2] = 0, .bit[2] = 2,\
Steven Cooreman 0:559902e88130 262 .com[3] = 0, .bit[3] = 3,\
Steven Cooreman 0:559902e88130 263 .com[4] = 0, .bit[4] = 4,\
Steven Cooreman 0:559902e88130 264 .com[5] = 0, .bit[5] = 5,\
Steven Cooreman 0:559902e88130 265 .com[6] = 0, .bit[6] = 6,\
Steven Cooreman 0:559902e88130 266 .com[7] = 0, .bit[7] = 7,\
Steven Cooreman 0:559902e88130 267 },\
Steven Cooreman 0:559902e88130 268 .Battery = {\
Steven Cooreman 0:559902e88130 269 .com[0] = 0, .bit[0] = 12,\
Steven Cooreman 0:559902e88130 270 .com[1] = 0, .bit[1] = 17,\
Steven Cooreman 0:559902e88130 271 .com[2] = 0, .bit[2] = 20,\
Steven Cooreman 0:559902e88130 272 .com[3] = 0, .bit[3] = 13,\
Steven Cooreman 0:559902e88130 273 }\
Steven Cooreman 0:559902e88130 274 }
Steven Cooreman 0:559902e88130 275
Steven Cooreman 0:559902e88130 276 static const PinName outPins[] = {
Steven Cooreman 0:559902e88130 277 /* SEG28..39 */
Steven Cooreman 0:559902e88130 278 PA7, //LCD_SEG35
Steven Cooreman 0:559902e88130 279 PA8, //LCD_SEG36
Steven Cooreman 0:559902e88130 280 PA9, //LCD_SEG37
Steven Cooreman 0:559902e88130 281 PA10, //LCD_SEG38
Steven Cooreman 0:559902e88130 282 PA11, //LCD_SEG39
Steven Cooreman 0:559902e88130 283 PB0, //LCD_SEG32
Steven Cooreman 0:559902e88130 284 PB1, //LCD_SEG33
Steven Cooreman 0:559902e88130 285 PB2, //LCD_SEG34
Steven Cooreman 0:559902e88130 286 PD9, //LCD_SEG28
Steven Cooreman 0:559902e88130 287 PD10, //LCD_SEG29
Steven Cooreman 0:559902e88130 288 PD11, //LCD_SEG30
Steven Cooreman 0:559902e88130 289 PD12, //LCD_SEG31
Steven Cooreman 0:559902e88130 290 /* SEG 20..27 */
Steven Cooreman 0:559902e88130 291 PB3, //LCD_SEG20
Steven Cooreman 0:559902e88130 292 PB4, //LCD_SEG21
Steven Cooreman 0:559902e88130 293 PB5, //LCD_SEG22
Steven Cooreman 0:559902e88130 294 PB6, //LCD_SEG23
Steven Cooreman 0:559902e88130 295 PF6, //LCD_SEG24
Steven Cooreman 0:559902e88130 296 PF7, //LCD_SEG25
Steven Cooreman 0:559902e88130 297 PF8, //LCD_SEG26
Steven Cooreman 0:559902e88130 298 PF9, //LCD_SEG27
Steven Cooreman 0:559902e88130 299 /* SEG12..19 */
Steven Cooreman 0:559902e88130 300 PA0, //LCD_SEG13
Steven Cooreman 0:559902e88130 301 PA1, //LCD_SEG14
Steven Cooreman 0:559902e88130 302 PA2, //LCD_SEG15
Steven Cooreman 0:559902e88130 303 PA3, //LCD_SEG16
Steven Cooreman 0:559902e88130 304 PA4, //LCD_SEG17
Steven Cooreman 0:559902e88130 305 PA5, //LCD_SEG18
Steven Cooreman 0:559902e88130 306 PA6, //LCD_SEG19
Steven Cooreman 0:559902e88130 307 PA15, //LCD_SEG12
Steven Cooreman 0:559902e88130 308 /* SEG0..11 */
Steven Cooreman 0:559902e88130 309 PF2, //LCD_SEG0
Steven Cooreman 0:559902e88130 310 PF3, //LCD_SEG1
Steven Cooreman 0:559902e88130 311 PF4, //LCD_SEG2
Steven Cooreman 0:559902e88130 312 PF5, //LCD_SEG3
Steven Cooreman 0:559902e88130 313 PE8, //LCD_SEG4
Steven Cooreman 0:559902e88130 314 PE9, //LCD_SEG5
Steven Cooreman 0:559902e88130 315 PE10, //LCD_SEG6
Steven Cooreman 0:559902e88130 316 PE11, //LCD_SEG7
Steven Cooreman 0:559902e88130 317 PE12, //LCD_SEG8
Steven Cooreman 0:559902e88130 318 PE13, //LCD_SEG9
Steven Cooreman 0:559902e88130 319 PE14, //LCD_SEG10
Steven Cooreman 0:559902e88130 320 PE15, //LCD_SEG11
Steven Cooreman 0:559902e88130 321 PA15, //LCD_SEG12
Steven Cooreman 0:559902e88130 322 /* COM0..3 */
Steven Cooreman 0:559902e88130 323 PE4, //LCD_COM0
Steven Cooreman 0:559902e88130 324 PE5, //LCD_COM1
Steven Cooreman 0:559902e88130 325 PE6, //LCD_COM2
Steven Cooreman 0:559902e88130 326 PE7 //LCD_COM3
Steven Cooreman 0:559902e88130 327 };
Steven Cooreman 0:559902e88130 328
Steven Cooreman 0:559902e88130 329 #ifdef __cplusplus
Steven Cooreman 0:559902e88130 330 }
Steven Cooreman 0:559902e88130 331 #endif
Steven Cooreman 0:559902e88130 332
Steven Cooreman 0:559902e88130 333 #endif