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 Tiny Gecko STK (STK_3300)
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 LCD_SYMBOL_GECKO,
Steven Cooreman 0:559902e88130 28 LCD_SYMBOL_ANT,
Steven Cooreman 0:559902e88130 29 LCD_SYMBOL_PAD0,
Steven Cooreman 0:559902e88130 30 LCD_SYMBOL_PAD1,
Steven Cooreman 0:559902e88130 31 LCD_SYMBOL_EFM32,
Steven Cooreman 0:559902e88130 32 LCD_SYMBOL_MINUS,
Steven Cooreman 0:559902e88130 33 LCD_SYMBOL_COL3,
Steven Cooreman 0:559902e88130 34 LCD_SYMBOL_COL5,
Steven Cooreman 0:559902e88130 35 LCD_SYMBOL_COL10,
Steven Cooreman 0:559902e88130 36 LCD_SYMBOL_DEGC,
Steven Cooreman 0:559902e88130 37 LCD_SYMBOL_DEGF,
Steven Cooreman 0:559902e88130 38 LCD_SYMBOL_DP2,
Steven Cooreman 0:559902e88130 39 LCD_SYMBOL_DP3,
Steven Cooreman 0:559902e88130 40 LCD_SYMBOL_DP4,
Steven Cooreman 0:559902e88130 41 LCD_SYMBOL_DP5,
Steven Cooreman 0:559902e88130 42 LCD_SYMBOL_DP6,
Steven Cooreman 0:559902e88130 43 LCD_SYMBOL_DP10,
Steven Cooreman 0:559902e88130 44 } lcdSymbol;
Steven Cooreman 0:559902e88130 45
Steven Cooreman 0:559902e88130 46 #define LCD_SYMBOL_GECKO_COM 1
Steven Cooreman 0:559902e88130 47 #define LCD_SYMBOL_GECKO_SEG 0
Steven Cooreman 0:559902e88130 48 #define LCD_SYMBOL_ANT_COM 0
Steven Cooreman 0:559902e88130 49 #define LCD_SYMBOL_ANT_SEG 12
Steven Cooreman 0:559902e88130 50 #define LCD_SYMBOL_PAD0_COM 3
Steven Cooreman 0:559902e88130 51 #define LCD_SYMBOL_PAD0_SEG 19
Steven Cooreman 0:559902e88130 52 #define LCD_SYMBOL_PAD1_COM 2
Steven Cooreman 0:559902e88130 53 #define LCD_SYMBOL_PAD1_SEG 0
Steven Cooreman 0:559902e88130 54 #define LCD_SYMBOL_EFM32_COM 0
Steven Cooreman 0:559902e88130 55 #define LCD_SYMBOL_EFM32_SEG 8
Steven Cooreman 0:559902e88130 56 #define LCD_SYMBOL_MINUS_COM 3
Steven Cooreman 0:559902e88130 57 #define LCD_SYMBOL_MINUS_SEG 0
Steven Cooreman 0:559902e88130 58 #define LCD_SYMBOL_COL3_COM 4
Steven Cooreman 0:559902e88130 59 #define LCD_SYMBOL_COL3_SEG 0
Steven Cooreman 0:559902e88130 60 #define LCD_SYMBOL_COL5_COM 0
Steven Cooreman 0:559902e88130 61 #define LCD_SYMBOL_COL5_SEG 10
Steven Cooreman 0:559902e88130 62 #define LCD_SYMBOL_COL10_COM 5
Steven Cooreman 0:559902e88130 63 #define LCD_SYMBOL_COL10_SEG 19
Steven Cooreman 0:559902e88130 64 #define LCD_SYMBOL_DEGC_COM 0
Steven Cooreman 0:559902e88130 65 #define LCD_SYMBOL_DEGC_SEG 14
Steven Cooreman 0:559902e88130 66 #define LCD_SYMBOL_DEGF_COM 0
Steven Cooreman 0:559902e88130 67 #define LCD_SYMBOL_DEGF_SEG 15
Steven Cooreman 0:559902e88130 68 #define LCD_SYMBOL_DP2_COM 7
Steven Cooreman 0:559902e88130 69 #define LCD_SYMBOL_DP2_SEG 0
Steven Cooreman 0:559902e88130 70 #define LCD_SYMBOL_DP3_COM 5
Steven Cooreman 0:559902e88130 71 #define LCD_SYMBOL_DP3_SEG 0
Steven Cooreman 0:559902e88130 72 #define LCD_SYMBOL_DP4_COM 6
Steven Cooreman 0:559902e88130 73 #define LCD_SYMBOL_DP4_SEG 0
Steven Cooreman 0:559902e88130 74 #define LCD_SYMBOL_DP5_COM 7
Steven Cooreman 0:559902e88130 75 #define LCD_SYMBOL_DP5_SEG 9
Steven Cooreman 0:559902e88130 76 #define LCD_SYMBOL_DP6_COM 7
Steven Cooreman 0:559902e88130 77 #define LCD_SYMBOL_DP6_SEG 11
Steven Cooreman 0:559902e88130 78 #define LCD_SYMBOL_DP10_COM 4
Steven Cooreman 0:559902e88130 79 #define LCD_SYMBOL_DP10_SEG 19
Steven Cooreman 0:559902e88130 80
Steven Cooreman 0:559902e88130 81 #define LCD_STK3300 TRUE
Steven Cooreman 0:559902e88130 82 #define LCD_DISPLAY_TYPE 8x20
Steven Cooreman 0:559902e88130 83 #define LCD_BOOST_LEVEL lcdVBoostLevel3
Steven Cooreman 0:559902e88130 84
Steven Cooreman 0:559902e88130 85 /* LCD Controller Prescaler (divide LFACLK / 64) */
Steven Cooreman 0:559902e88130 86 /* LFACLK_LCDpre = 512 Hz */
Steven Cooreman 0:559902e88130 87 /* Set FDIV=0, means 512/1 = 512 Hz */
Steven Cooreman 0:559902e88130 88 /* With octaplex mode, 512/16 => 32 Hz Frame Rate */
Steven Cooreman 0:559902e88130 89 #define LCD_CMU_CLK_PRE cmuClkDiv_64
Steven Cooreman 0:559902e88130 90 #define LCD_CMU_CLK_DIV cmuClkDiv_1
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_SegmentSetLow(0, 0x00078000, 0x00000000);\
Steven Cooreman 0:559902e88130 103 LCD_SegmentSetLow(1, 0x00078000, 0x00000000);\
Steven Cooreman 0:559902e88130 104 LCD_SegmentSetLow(2, 0x00078000, 0x00000000);\
Steven Cooreman 0:559902e88130 105 LCD_SegmentSetLow(3, 0x00078000, 0x00000000);\
Steven Cooreman 0:559902e88130 106 LCD_SegmentSetLow(4, 0x00078000, 0x00000000);\
Steven Cooreman 0:559902e88130 107 LCD_SegmentSetLow(5, 0x00078000, 0x00000000);\
Steven Cooreman 0:559902e88130 108 LCD_SegmentSetLow(6, 0x00078000, 0x00000000);\
Steven Cooreman 0:559902e88130 109 LCD_SegmentSetLow(7, 0x00078000, 0x00000000);\
Steven Cooreman 0:559902e88130 110 } while (0)
Steven Cooreman 0:559902e88130 111
Steven Cooreman 0:559902e88130 112 #define LCD_ALPHA_NUMBER_OFF() \
Steven Cooreman 0:559902e88130 113 do { \
Steven Cooreman 0:559902e88130 114 LCD_SegmentSetLow(7, 0x000075FE, 0x00000000);\
Steven Cooreman 0:559902e88130 115 LCD_SegmentSetLow(6, 0x00007FFE, 0x00000000);\
Steven Cooreman 0:559902e88130 116 LCD_SegmentSetLow(5, 0x00007FFE, 0x00000000);\
Steven Cooreman 0:559902e88130 117 LCD_SegmentSetLow(4, 0x00007FFE, 0x00000000);\
Steven Cooreman 0:559902e88130 118 LCD_SegmentSetLow(3, 0x00007FFE, 0x00000000);\
Steven Cooreman 0:559902e88130 119 LCD_SegmentSetLow(2, 0x00007FFE, 0x00000000);\
Steven Cooreman 0:559902e88130 120 LCD_SegmentSetLow(1, 0x00007FFE, 0x00000000);\
Steven Cooreman 0:559902e88130 121 LCD_SegmentSetLow(0, 0x00000A00, 0x00000000);\
Steven Cooreman 0:559902e88130 122 } while(0)
Steven Cooreman 0:559902e88130 123
Steven Cooreman 0:559902e88130 124 #define LCD_ALL_SEGMENTS_OFF() \
Steven Cooreman 0:559902e88130 125 do { \
Steven Cooreman 0:559902e88130 126 LCD_SegmentSetLow(0, 0xFFFFFFFF, 0x00000000);\
Steven Cooreman 0:559902e88130 127 LCD_SegmentSetLow(1, 0xFFFFFFFF, 0x00000000);\
Steven Cooreman 0:559902e88130 128 LCD_SegmentSetLow(2, 0xFFFFFFFF, 0x00000000);\
Steven Cooreman 0:559902e88130 129 LCD_SegmentSetLow(3, 0xFFFFFFFF, 0x00000000);\
Steven Cooreman 0:559902e88130 130 LCD_SegmentSetLow(4, 0xFFFFFFFF, 0x00000000);\
Steven Cooreman 0:559902e88130 131 LCD_SegmentSetLow(5, 0xFFFFFFFF, 0x00000000);\
Steven Cooreman 0:559902e88130 132 LCD_SegmentSetLow(6, 0xFFFFFFFF, 0x00000000);\
Steven Cooreman 0:559902e88130 133 LCD_SegmentSetLow(7, 0xFFFFFFFF, 0x00000000);\
Steven Cooreman 0:559902e88130 134 } while(0)
Steven Cooreman 0:559902e88130 135
Steven Cooreman 0:559902e88130 136 #define LCD_ALL_SEGMENTS_ON() \
Steven Cooreman 0:559902e88130 137 do { \
Steven Cooreman 0:559902e88130 138 LCD_SegmentSetLow(0, 0xFFFFFFFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 139 LCD_SegmentSetLow(1, 0xFFFFFFFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 140 LCD_SegmentSetLow(2, 0xFFFFFFFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 141 LCD_SegmentSetLow(3, 0xFFFFFFFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 142 LCD_SegmentSetLow(4, 0xFFFFFFFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 143 LCD_SegmentSetLow(5, 0xFFFFFFFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 144 LCD_SegmentSetLow(6, 0xFFFFFFFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 145 LCD_SegmentSetLow(7, 0xFFFFFFFF, 0xFFFFFFFF);\
Steven Cooreman 0:559902e88130 146 } while(0)
Steven Cooreman 0:559902e88130 147
Steven Cooreman 0:559902e88130 148 #define LCD_SEGMENTS_ENABLE() \
Steven Cooreman 0:559902e88130 149 do { \
Steven Cooreman 0:559902e88130 150 LCD_SegmentRangeEnable(lcdSegmentAll, true);\
Steven Cooreman 0:559902e88130 151 } while(0)
Steven Cooreman 0:559902e88130 152
Steven Cooreman 0:559902e88130 153 #define LCD_DISPLAY_ENABLE() \
Steven Cooreman 0:559902e88130 154 do { \
Steven Cooreman 0:559902e88130 155 ;\
Steven Cooreman 0:559902e88130 156 } while(0)
Steven Cooreman 0:559902e88130 157
Steven Cooreman 0:559902e88130 158 #define EFM_DISPLAY_DEF {\
Steven Cooreman 0:559902e88130 159 .Text = {\
Steven Cooreman 0:559902e88130 160 { /* 1 */\
Steven Cooreman 0:559902e88130 161 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 162 .bit[0] = 1, .bit[1] = 2, .bit[2] = 2, .bit[3] = 2,\
Steven Cooreman 0:559902e88130 163 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\
Steven Cooreman 0:559902e88130 164 .bit[4] = 1, .bit[5] = 1, .bit[6] = 1, .bit[7] = 1,\
Steven Cooreman 0:559902e88130 165 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 166 .bit[8] = 2, .bit[9] = 2, .bit[10] = 2, .bit[11] = 2,\
Steven Cooreman 0:559902e88130 167 .com[12] = 5, .com[13] = 6,\
Steven Cooreman 0:559902e88130 168 .bit[12] = 1, .bit[13] = 1\
Steven Cooreman 0:559902e88130 169 },\
Steven Cooreman 0:559902e88130 170 { /* 2 */\
Steven Cooreman 0:559902e88130 171 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 172 .bit[0] = 3, .bit[1] = 4, .bit[2] = 4, .bit[3] = 4,\
Steven Cooreman 0:559902e88130 173 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\
Steven Cooreman 0:559902e88130 174 .bit[4] = 3, .bit[5] = 3, .bit[6] = 3, .bit[7] = 3,\
Steven Cooreman 0:559902e88130 175 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 176 .bit[8] = 4, .bit[9] = 4, .bit[10] = 4, .bit[11] = 4,\
Steven Cooreman 0:559902e88130 177 .com[12] = 5, .com[13] = 6,\
Steven Cooreman 0:559902e88130 178 .bit[12] = 3, .bit[13] = 3\
Steven Cooreman 0:559902e88130 179 },\
Steven Cooreman 0:559902e88130 180 { /* 3 */\
Steven Cooreman 0:559902e88130 181 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 182 .bit[0] = 5, .bit[1] = 6, .bit[2] = 6, .bit[3] = 6,\
Steven Cooreman 0:559902e88130 183 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\
Steven Cooreman 0:559902e88130 184 .bit[4] = 5, .bit[5] = 5, .bit[6] = 5, .bit[7] = 5,\
Steven Cooreman 0:559902e88130 185 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 186 .bit[8] = 6, .bit[9] = 6, .bit[10] = 6, .bit[11] = 6,\
Steven Cooreman 0:559902e88130 187 .com[12] = 5, .com[13] = 6,\
Steven Cooreman 0:559902e88130 188 .bit[12] = 5, .bit[13] = 5\
Steven Cooreman 0:559902e88130 189 },\
Steven Cooreman 0:559902e88130 190 { /* 4 */\
Steven Cooreman 0:559902e88130 191 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 192 .bit[0] = 7, .bit[1] = 8, .bit[2] = 8, .bit[3] = 8,\
Steven Cooreman 0:559902e88130 193 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\
Steven Cooreman 0:559902e88130 194 .bit[4] = 7, .bit[5] = 7, .bit[6] = 7, .bit[7] = 7,\
Steven Cooreman 0:559902e88130 195 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 196 .bit[8] = 8, .bit[9] = 8, .bit[10] = 8, .bit[11] = 8,\
Steven Cooreman 0:559902e88130 197 .com[12] = 5, .com[13] = 6,\
Steven Cooreman 0:559902e88130 198 .bit[12] = 7, .bit[13] = 7\
Steven Cooreman 0:559902e88130 199 },\
Steven Cooreman 0:559902e88130 200 { /* 5 */\
Steven Cooreman 0:559902e88130 201 .com[0] = 0, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 202 .bit[0] = 9, .bit[1] = 10, .bit[2] = 10, .bit[3] = 10,\
Steven Cooreman 0:559902e88130 203 .com[4] = 6, .com[5] = 2, .com[6] = 3, .com[7] = 1,\
Steven Cooreman 0:559902e88130 204 .bit[4] = 9, .bit[5] = 9, .bit[6] = 9, .bit[7] = 9,\
Steven Cooreman 0:559902e88130 205 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 206 .bit[8] = 10, .bit[9] = 10, .bit[10] = 10, .bit[11] = 10,\
Steven Cooreman 0:559902e88130 207 .com[12] = 4, .com[13] = 5,\
Steven Cooreman 0:559902e88130 208 .bit[12] = 9, .bit[13] = 9\
Steven Cooreman 0:559902e88130 209 },\
Steven Cooreman 0:559902e88130 210 { /* 6 */\
Steven Cooreman 0:559902e88130 211 .com[0] = 0, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 212 .bit[0] = 11, .bit[1] = 12, .bit[2] = 12, .bit[3] = 12,\
Steven Cooreman 0:559902e88130 213 .com[4] = 6, .com[5] = 2, .com[6] = 3, .com[7] = 1,\
Steven Cooreman 0:559902e88130 214 .bit[4] = 11, .bit[5] = 11, .bit[6] = 11, .bit[7] = 11,\
Steven Cooreman 0:559902e88130 215 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 216 .bit[8] = 12, .bit[9] = 12, .bit[10] = 12, .bit[11] = 12,\
Steven Cooreman 0:559902e88130 217 .com[12] = 4, .com[13] = 5,\
Steven Cooreman 0:559902e88130 218 .bit[12] = 11, .bit[13] = 11\
Steven Cooreman 0:559902e88130 219 },\
Steven Cooreman 0:559902e88130 220 { /* 7 */\
Steven Cooreman 0:559902e88130 221 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\
Steven Cooreman 0:559902e88130 222 .bit[0] = 13, .bit[1] = 14, .bit[2] = 14, .bit[3] = 14,\
Steven Cooreman 0:559902e88130 223 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\
Steven Cooreman 0:559902e88130 224 .bit[4] = 13, .bit[5] = 13, .bit[6] = 13, .bit[7] = 13,\
Steven Cooreman 0:559902e88130 225 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\
Steven Cooreman 0:559902e88130 226 .bit[8] = 14, .bit[9] = 14, .bit[10] = 14, .bit[11] = 14,\
Steven Cooreman 0:559902e88130 227 .com[12] = 5, .com[13] = 6,\
Steven Cooreman 0:559902e88130 228 .bit[12] = 13, .bit[13] = 13\
Steven Cooreman 0:559902e88130 229 },\
Steven Cooreman 0:559902e88130 230 },\
Steven Cooreman 0:559902e88130 231 .Number = {\
Steven Cooreman 0:559902e88130 232 {\
Steven Cooreman 0:559902e88130 233 .com[0] = 7, .com[1] = 5, .com[2] = 2, .com[3] = 1,\
Steven Cooreman 0:559902e88130 234 .bit[0] = 15, .bit[1] = 15, .bit[2] = 15, .bit[3] = 15,\
Steven Cooreman 0:559902e88130 235 .com[4] = 3, .com[5] = 6, .com[6] = 4,\
Steven Cooreman 0:559902e88130 236 .bit[4] = 15, .bit[5] = 15, .bit[6] = 15,\
Steven Cooreman 0:559902e88130 237 },\
Steven Cooreman 0:559902e88130 238 {\
Steven Cooreman 0:559902e88130 239 .com[0] = 7, .com[1] = 5, .com[2] = 2, .com[3] = 1,\
Steven Cooreman 0:559902e88130 240 .bit[0] = 16, .bit[1] = 16, .bit[2] = 16, .bit[3] = 16,\
Steven Cooreman 0:559902e88130 241 .com[4] = 3, .com[5] = 6, .com[6] = 4,\
Steven Cooreman 0:559902e88130 242 .bit[4] = 16, .bit[5] = 16, .bit[6] = 16,\
Steven Cooreman 0:559902e88130 243 },\
Steven Cooreman 0:559902e88130 244 {\
Steven Cooreman 0:559902e88130 245 .com[0] = 7, .com[1] = 5, .com[2] = 2, .com[3] = 1,\
Steven Cooreman 0:559902e88130 246 .bit[0] = 17, .bit[1] = 17, .bit[2] = 17, .bit[3] = 17,\
Steven Cooreman 0:559902e88130 247 .com[4] = 3, .com[5] = 6, .com[6] = 4,\
Steven Cooreman 0:559902e88130 248 .bit[4] = 17, .bit[5] = 17, .bit[6] = 17,\
Steven Cooreman 0:559902e88130 249 },\
Steven Cooreman 0:559902e88130 250 {\
Steven Cooreman 0:559902e88130 251 .com[0] = 7, .com[1] = 5, .com[2] = 2, .com[3] = 1,\
Steven Cooreman 0:559902e88130 252 .bit[0] = 18, .bit[1] = 18, .bit[2] = 18, .bit[3] = 18,\
Steven Cooreman 0:559902e88130 253 .com[4] = 3, .com[5] = 6, .com[6] = 4,\
Steven Cooreman 0:559902e88130 254 .bit[4] = 18, .bit[5] = 18, .bit[6] = 18,\
Steven Cooreman 0:559902e88130 255 },\
Steven Cooreman 0:559902e88130 256 },\
Steven Cooreman 0:559902e88130 257 .EMode = {\
Steven Cooreman 0:559902e88130 258 .com[0] = 0, .bit[0] = 19,\
Steven Cooreman 0:559902e88130 259 .com[1] = 1, .bit[1] = 19,\
Steven Cooreman 0:559902e88130 260 .com[2] = 7, .bit[2] = 19,\
Steven Cooreman 0:559902e88130 261 .com[3] = 2, .bit[3] = 19,\
Steven Cooreman 0:559902e88130 262 .com[4] = 6, .bit[4] = 19,\
Steven Cooreman 0:559902e88130 263 },\
Steven Cooreman 0:559902e88130 264 .ARing = {\
Steven Cooreman 0:559902e88130 265 .com[0] = 0, .bit[0] = 7,\
Steven Cooreman 0:559902e88130 266 .com[1] = 0, .bit[1] = 6,\
Steven Cooreman 0:559902e88130 267 .com[2] = 0, .bit[2] = 5,\
Steven Cooreman 0:559902e88130 268 .com[3] = 0, .bit[3] = 4,\
Steven Cooreman 0:559902e88130 269 .com[4] = 0, .bit[4] = 3,\
Steven Cooreman 0:559902e88130 270 .com[5] = 0, .bit[5] = 2,\
Steven Cooreman 0:559902e88130 271 .com[6] = 0, .bit[6] = 1,\
Steven Cooreman 0:559902e88130 272 .com[7] = 0, .bit[7] = 0,\
Steven Cooreman 0:559902e88130 273 },\
Steven Cooreman 0:559902e88130 274 .Battery = {\
Steven Cooreman 0:559902e88130 275 .com[0] = 0, .bit[0] = 13,\
Steven Cooreman 0:559902e88130 276 .com[1] = 0, .bit[1] = 17,\
Steven Cooreman 0:559902e88130 277 .com[2] = 0, .bit[2] = 16,\
Steven Cooreman 0:559902e88130 278 .com[3] = 0, .bit[3] = 18,\
Steven Cooreman 0:559902e88130 279 }\
Steven Cooreman 0:559902e88130 280 }
Steven Cooreman 0:559902e88130 281
Steven Cooreman 0:559902e88130 282 static const PinName outPins[] = {
Steven Cooreman 0:559902e88130 283 /* SEG28..39 */
Steven Cooreman 0:559902e88130 284 PA7, //LCD_SEG35
Steven Cooreman 0:559902e88130 285 PA8, //LCD_SEG36
Steven Cooreman 0:559902e88130 286 PA9, //LCD_SEG37
Steven Cooreman 0:559902e88130 287 PA10, //LCD_SEG38
Steven Cooreman 0:559902e88130 288 PA11, //LCD_SEG39
Steven Cooreman 0:559902e88130 289 PB0, //LCD_SEG32
Steven Cooreman 0:559902e88130 290 PB1, //LCD_SEG33
Steven Cooreman 0:559902e88130 291 PB2, //LCD_SEG34
Steven Cooreman 0:559902e88130 292 PD9, //LCD_SEG28
Steven Cooreman 0:559902e88130 293 PD10, //LCD_SEG29
Steven Cooreman 0:559902e88130 294 PD11, //LCD_SEG30
Steven Cooreman 0:559902e88130 295 PD12, //LCD_SEG31
Steven Cooreman 0:559902e88130 296 /* SEG12..19 */
Steven Cooreman 0:559902e88130 297 PA0, //LCD_SEG13
Steven Cooreman 0:559902e88130 298 PA1, //LCD_SEG14
Steven Cooreman 0:559902e88130 299 PA2, //LCD_SEG15
Steven Cooreman 0:559902e88130 300 PA3, //LCD_SEG16
Steven Cooreman 0:559902e88130 301 PA4, //LCD_SEG17
Steven Cooreman 0:559902e88130 302 PA5, //LCD_SEG18
Steven Cooreman 0:559902e88130 303 PA6, //LCD_SEG19
Steven Cooreman 0:559902e88130 304 PA15, //LCD_SEG12
Steven Cooreman 0:559902e88130 305 /* COM4..7 */
Steven Cooreman 0:559902e88130 306 PB3, //LCD_COM4
Steven Cooreman 0:559902e88130 307 PB4, //LCD_COM5
Steven Cooreman 0:559902e88130 308 PB5, //LCD_COM6
Steven Cooreman 0:559902e88130 309 PB6, //LCD_COM7
Steven Cooreman 0:559902e88130 310 /* COM0..3 */
Steven Cooreman 0:559902e88130 311 PE4, //LCD_COM0
Steven Cooreman 0:559902e88130 312 PE5, //LCD_COM1
Steven Cooreman 0:559902e88130 313 PE6, //LCD_COM2
Steven Cooreman 0:559902e88130 314 PE7 //LCD_COM3
Steven Cooreman 0:559902e88130 315 };
Steven Cooreman 0:559902e88130 316
Steven Cooreman 0:559902e88130 317 #ifdef __cplusplus
Steven Cooreman 0:559902e88130 318 }
Steven Cooreman 0:559902e88130 319 #endif
Steven Cooreman 0:559902e88130 320
Steven Cooreman 0:559902e88130 321 #endif