Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of EFM32_SegmentLCD by
segmentlcdconfig_stk_g.h
00001 /**************************************************************************//** 00002 * @file 00003 * @brief Segment LCD Config for the EFM32 Gecko STK (G8xx_STK) 00004 * @version 3.20.5 00005 ****************************************************************************** 00006 * @section License 00007 * <b>(C) Copyright 2014 Silicon Labs, http://www.silabs.com</b> 00008 ******************************************************************************* 00009 * 00010 * This file is licensensed under the Silabs License Agreement. See the file 00011 * "Silabs_License_Agreement.txt" for details. Before using this software for 00012 * any purpose, you must agree to the terms of that agreement. 00013 * 00014 ******************************************************************************/ 00015 00016 #ifndef __SEGMENTLCDCONFIG_H 00017 #define __SEGMENTLCDCONFIG_H 00018 00019 #include "em_lcd.h" 00020 00021 #ifdef __cplusplus 00022 extern "C" { 00023 #endif 00024 00025 /** Range of symbols available on display */ 00026 typedef enum 00027 { 00028 LCD_SYMBOL_GECKO, 00029 LCD_SYMBOL_ANT, 00030 LCD_SYMBOL_PAD0, 00031 LCD_SYMBOL_PAD1, 00032 LCD_SYMBOL_AM, 00033 LCD_SYMBOL_PM, 00034 LCD_SYMBOL_EFM32, 00035 LCD_SYMBOL_MINUS, 00036 LCD_SYMBOL_COL3, 00037 LCD_SYMBOL_COL5, 00038 LCD_SYMBOL_COL10, 00039 LCD_SYMBOL_DEGC, 00040 LCD_SYMBOL_DEGF, 00041 LCD_SYMBOL_MICROAMP, 00042 LCD_SYMBOL_MILLIAMP, 00043 LCD_SYMBOL_DP6, 00044 LCD_SYMBOL_DP10, 00045 } lcdSymbol; 00046 00047 00048 #define LCD_SYMBOL_GECKO_COM 3 00049 #define LCD_SYMBOL_GECKO_SEG 8 00050 #define LCD_SYMBOL_ANT_COM 3 00051 #define LCD_SYMBOL_ANT_SEG 1 00052 #define LCD_SYMBOL_PAD0_COM 1 00053 #define LCD_SYMBOL_PAD0_SEG 8 00054 #define LCD_SYMBOL_PAD1_COM 2 00055 #define LCD_SYMBOL_PAD1_SEG 8 00056 #define LCD_SYMBOL_AM_COM 0 00057 #define LCD_SYMBOL_AM_SEG 32 00058 #define LCD_SYMBOL_PM_COM 0 00059 #define LCD_SYMBOL_PM_SEG 35 00060 #define LCD_SYMBOL_EFM32_COM 0 00061 #define LCD_SYMBOL_EFM32_SEG 8 00062 #define LCD_SYMBOL_MINUS_COM 0 00063 #define LCD_SYMBOL_MINUS_SEG 9 00064 #define LCD_SYMBOL_COL3_COM 0 00065 #define LCD_SYMBOL_COL3_SEG 16 00066 #define LCD_SYMBOL_COL5_COM 0 00067 #define LCD_SYMBOL_COL5_SEG 24 00068 #define LCD_SYMBOL_COL10_COM 0 00069 #define LCD_SYMBOL_COL10_SEG 39 00070 #define LCD_SYMBOL_DEGC_COM 0 00071 #define LCD_SYMBOL_DEGC_SEG 34 00072 #define LCD_SYMBOL_DEGF_COM 1 00073 #define LCD_SYMBOL_DEGF_SEG 34 00074 #define LCD_SYMBOL_MICROAMP_COM 2 00075 #define LCD_SYMBOL_MICROAMP_SEG 34 00076 #define LCD_SYMBOL_MILLIAMP_COM 3 00077 #define LCD_SYMBOL_MILLIAMP_SEG 34 00078 #define LCD_SYMBOL_DP6_COM 0 00079 #define LCD_SYMBOL_DP6_SEG 21 00080 #define LCD_SYMBOL_DP10_COM 0 00081 #define LCD_SYMBOL_DP10_SEG 37 00082 00083 /* LCD Controller Prescaler (divide by 128) */ 00084 /* CLKlcd = 256 Hz */ 00085 #define LCD_CMU_CLK_PRE cmuClkDiv_128 00086 #define LCD_CMU_CLK_DIV 0 00087 00088 #define LCD_BOOST_LEVEL lcdVBoostLevel0 00089 00090 #define LCD_INIT_DEF \ 00091 { true,\ 00092 lcdMuxQuadruplex,\ 00093 lcdBiasOneThird,\ 00094 lcdWaveLowPower,\ 00095 lcdVLCDSelVDD,\ 00096 lcdConConfVLCD } 00097 00098 #define LCD_NUMBER_OFF() \ 00099 do { \ 00100 LCD_SegmentSetLow(0, 0x80000000, 0x00000000);\ 00101 LCD_SegmentSetLow(1, 0x80000000, 0x00000000);\ 00102 LCD_SegmentSetLow(2, 0x80000000, 0x00000000);\ 00103 LCD_SegmentSetLow(3, 0x80000000, 0x00000000);\ 00104 LCD_SegmentSetHigh(0, 0x52, 0x00000000);\ 00105 LCD_SegmentSetHigh(1, 0xFB, 0x00000000);\ 00106 LCD_SegmentSetHigh(2, 0xFB, 0x00000000);\ 00107 LCD_SegmentSetHigh(3, 0xFB, 0x00000000);\ 00108 } while (0) 00109 00110 #define LCD_ALPHA_NUMBER_OFF() \ 00111 do { \ 00112 LCD_SegmentSetLow(0, 0x7ECCCC00, 0x00000000);\ 00113 LCD_SegmentSetLow(1, 0x7FFFFEFC, 0x00000000);\ 00114 LCD_SegmentSetLow(2, 0x7FFFFEFC, 0x00000000);\ 00115 LCD_SegmentSetLow(3, 0x7FFFFEFC, 0x00000000);\ 00116 } while(0) 00117 00118 #define LCD_ALL_SEGMENTS_OFF() \ 00119 do { \ 00120 LCD_SegmentSetLow(0, 0xFFFFFFFF, 0x00000000);\ 00121 LCD_SegmentSetLow(1, 0xFFFFFFFF, 0x00000000);\ 00122 LCD_SegmentSetLow(2, 0xFFFFFFFF, 0x00000000);\ 00123 LCD_SegmentSetLow(3, 0xFFFFFFFF, 0x00000000);\ 00124 LCD_SegmentSetHigh(0, 0xFF, 0x00000000);\ 00125 LCD_SegmentSetHigh(1, 0xFF, 0x00000000);\ 00126 LCD_SegmentSetHigh(2, 0xFF, 0x00000000);\ 00127 LCD_SegmentSetHigh(3, 0xFF, 0x00000000);\ 00128 } while(0) 00129 00130 #define LCD_ALL_SEGMENTS_ON() \ 00131 do { \ 00132 LCD_SegmentSetLow(0, 0xFFFFFFFF, 0xFFFFFFFF);\ 00133 LCD_SegmentSetLow(1, 0xFFFFFFFF, 0xFFFFFFFF);\ 00134 LCD_SegmentSetLow(2, 0xFFFFFFFF, 0xFFFFFFFF);\ 00135 LCD_SegmentSetLow(3, 0xFFFFFFFF, 0xFFFFFFFF);\ 00136 LCD_SegmentSetHigh(0, 0xFF, 0xFFFFFFFF);\ 00137 LCD_SegmentSetHigh(1, 0xFF, 0xFFFFFFFF);\ 00138 LCD_SegmentSetHigh(2, 0xFF, 0xFFFFFFFF);\ 00139 LCD_SegmentSetHigh(3, 0xFF, 0xFFFFFFFF);\ 00140 } while(0) 00141 00142 #define LCD_SEGMENTS_ENABLE() \ 00143 do { \ 00144 LCD_SegmentRangeEnable(lcdSegmentAll, true);\ 00145 } while(0) 00146 00147 #define LCD_DISPLAY_ENABLE() \ 00148 do { \ 00149 ;\ 00150 } while(0) 00151 00152 #define EFM_DISPLAY_DEF {\ 00153 .Text = {\ 00154 { /* 1 */\ 00155 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\ 00156 .bit[0] = 10, .bit[1] = 12, .bit[2] = 12, .bit[3] = 10,\ 00157 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\ 00158 .bit[4] = 9, .bit[5] = 9, .bit[6] = 9, .bit[7] = 10,\ 00159 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\ 00160 .bit[8] = 11, .bit[9] = 11, .bit[10] = 12, .bit[11] = 11,\ 00161 .com[12] = 1, .com[13] = 1,\ 00162 .bit[12] = 11, .bit[13] = 10\ 00163 },\ 00164 { /* 2 */\ 00165 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\ 00166 .bit[0] = 14, .bit[1] = 16, .bit[2] = 16, .bit[3] = 14,\ 00167 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\ 00168 .bit[4] = 13, .bit[5] = 13, .bit[6] = 13, .bit[7] = 14,\ 00169 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\ 00170 .bit[8] = 15, .bit[9] = 15, .bit[10] = 16, .bit[11] = 15,\ 00171 .com[12] = 1, .com[13] = 1,\ 00172 .bit[12] = 15, .bit[13] = 14\ 00173 },\ 00174 { /* 3 */\ 00175 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\ 00176 .bit[0] = 18, .bit[1] = 20, .bit[2] = 20, .bit[3] = 18,\ 00177 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\ 00178 .bit[4] = 17, .bit[5] = 17, .bit[6] = 17, .bit[7] = 18,\ 00179 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\ 00180 .bit[8] = 19, .bit[9] = 19, .bit[10] = 20, .bit[11] = 19,\ 00181 .com[12] = 1, .com[13] = 1,\ 00182 .bit[12] = 19, .bit[13] = 18\ 00183 },\ 00184 { /* 4 */\ 00185 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\ 00186 .bit[0] = 22, .bit[1] = 24, .bit[2] = 24, .bit[3] = 22,\ 00187 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\ 00188 .bit[4] = 21, .bit[5] = 21, .bit[6] = 21, .bit[7] = 22,\ 00189 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\ 00190 .bit[8] = 23, .bit[9] = 23, .bit[10] = 24, .bit[11] = 23,\ 00191 .com[12] = 1, .com[13] = 1,\ 00192 .bit[12] = 23, .bit[13] = 22\ 00193 },\ 00194 { /* 5 */\ 00195 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\ 00196 .bit[0] = 25, .bit[1] = 6, .bit[2] = 6, .bit[3] = 25,\ 00197 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\ 00198 .bit[4] = 7, .bit[5] = 7, .bit[6] = 7, .bit[7] = 25,\ 00199 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\ 00200 .bit[8] = 26, .bit[9] = 26, .bit[10] = 6, .bit[11] = 26,\ 00201 .com[12] = 1, .com[13] = 1,\ 00202 .bit[12] = 26, .bit[13] = 25\ 00203 },\ 00204 { /* 6 */\ 00205 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\ 00206 .bit[0] = 27, .bit[1] = 04, .bit[2] = 04, .bit[3] = 27,\ 00207 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\ 00208 .bit[4] = 5, .bit[5] = 5, .bit[6] = 5, .bit[7] = 27,\ 00209 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\ 00210 .bit[8] = 28, .bit[9] = 28, .bit[10] = 4, .bit[11] = 28,\ 00211 .com[12] = 1, .com[13] = 1,\ 00212 .bit[12] = 28, .bit[13] = 27\ 00213 },\ 00214 { /* 7 */\ 00215 .com[0] = 3, .com[1] = 3, .com[2] = 1, .com[3] = 0,\ 00216 .bit[0] = 29, .bit[1] = 2, .bit[2] = 2, .bit[3] = 29,\ 00217 .com[4] = 1, .com[5] = 3, .com[6] = 2, .com[7] = 2,\ 00218 .bit[4] = 03, .bit[5] = 3, .bit[6] = 3, .bit[7] = 29,\ 00219 .com[8] = 2, .com[9] = 3, .com[10] = 2, .com[11] = 0,\ 00220 .bit[8] = 30, .bit[9] = 30, .bit[10] = 2, .bit[11] = 30,\ 00221 .com[12] = 1, .com[13] = 1,\ 00222 .bit[12] = 30, .bit[13] = 29\ 00223 }\ 00224 },\ 00225 .Number = {\ 00226 {\ 00227 .com[0] = 3, .com[1] = 2, .com[2] = 1, .com[3] = 0,\ 00228 .bit[0] = 31, .bit[1] = 31, .bit[2] = 31, .bit[3] = 31,\ 00229 .com[4] = 1, .com[5] = 3, .com[6] = 2,\ 00230 .bit[4] = 32, .bit[5] = 32, .bit[6] = 32,\ 00231 },\ 00232 {\ 00233 .com[0] = 3, .com[1] = 2, .com[2] = 1, .com[3] = 0,\ 00234 .bit[0] = 33, .bit[1] = 33, .bit[2] = 33, .bit[3] = 33,\ 00235 .com[4] = 1, .com[5] = 3, .com[6] = 2,\ 00236 .bit[4] = 35, .bit[5] = 35, .bit[6] = 35,\ 00237 },\ 00238 {\ 00239 .com[0] = 3, .com[1] = 2, .com[2] = 1, .com[3] = 0,\ 00240 .bit[0] = 36, .bit[1] = 36, .bit[2] = 36, .bit[3] = 36,\ 00241 .com[4] = 1, .com[5] = 3, .com[6] = 2,\ 00242 .bit[4] = 37, .bit[5] = 37, .bit[6] = 37,\ 00243 },\ 00244 {\ 00245 .com[0] = 3, .com[1] = 2, .com[2] = 1, .com[3] = 0,\ 00246 .bit[0] = 38, .bit[1] = 38, .bit[2] = 38, .bit[3] = 38,\ 00247 .com[4] = 1, .com[5] = 3, .com[6] = 2,\ 00248 .bit[4] = 39, .bit[5] = 39, .bit[6] = 39,\ 00249 },\ 00250 },\ 00251 .EMode = {\ 00252 .com[0] = 1, .bit[0] = 1,\ 00253 .com[1] = 2, .bit[1] = 1,\ 00254 .com[2] = 1, .bit[2] = 0,\ 00255 .com[3] = 2, .bit[3] = 0,\ 00256 .com[4] = 3, .bit[4] = 0,\ 00257 },\ 00258 .ARing = {\ 00259 .com[0] = 0, .bit[0] = 0,\ 00260 .com[1] = 0, .bit[1] = 1,\ 00261 .com[2] = 0, .bit[2] = 2,\ 00262 .com[3] = 0, .bit[3] = 3,\ 00263 .com[4] = 0, .bit[4] = 4,\ 00264 .com[5] = 0, .bit[5] = 5,\ 00265 .com[6] = 0, .bit[6] = 6,\ 00266 .com[7] = 0, .bit[7] = 7,\ 00267 },\ 00268 .Battery = {\ 00269 .com[0] = 0, .bit[0] = 12,\ 00270 .com[1] = 0, .bit[1] = 17,\ 00271 .com[2] = 0, .bit[2] = 20,\ 00272 .com[3] = 0, .bit[3] = 13,\ 00273 }\ 00274 } 00275 00276 static const PinName outPins[] = { 00277 /* SEG28..39 */ 00278 PA7, //LCD_SEG35 00279 PA8, //LCD_SEG36 00280 PA9, //LCD_SEG37 00281 PA10, //LCD_SEG38 00282 PA11, //LCD_SEG39 00283 PB0, //LCD_SEG32 00284 PB1, //LCD_SEG33 00285 PB2, //LCD_SEG34 00286 PD9, //LCD_SEG28 00287 PD10, //LCD_SEG29 00288 PD11, //LCD_SEG30 00289 PD12, //LCD_SEG31 00290 /* SEG 20..27 */ 00291 PB3, //LCD_SEG20 00292 PB4, //LCD_SEG21 00293 PB5, //LCD_SEG22 00294 PB6, //LCD_SEG23 00295 PF6, //LCD_SEG24 00296 PF7, //LCD_SEG25 00297 PF8, //LCD_SEG26 00298 PF9, //LCD_SEG27 00299 /* SEG12..19 */ 00300 PA0, //LCD_SEG13 00301 PA1, //LCD_SEG14 00302 PA2, //LCD_SEG15 00303 PA3, //LCD_SEG16 00304 PA4, //LCD_SEG17 00305 PA5, //LCD_SEG18 00306 PA6, //LCD_SEG19 00307 PA15, //LCD_SEG12 00308 /* SEG0..11 */ 00309 PF2, //LCD_SEG0 00310 PF3, //LCD_SEG1 00311 PF4, //LCD_SEG2 00312 PF5, //LCD_SEG3 00313 PE8, //LCD_SEG4 00314 PE9, //LCD_SEG5 00315 PE10, //LCD_SEG6 00316 PE11, //LCD_SEG7 00317 PE12, //LCD_SEG8 00318 PE13, //LCD_SEG9 00319 PE14, //LCD_SEG10 00320 PE15, //LCD_SEG11 00321 PA15, //LCD_SEG12 00322 /* COM0..3 */ 00323 PE4, //LCD_COM0 00324 PE5, //LCD_COM1 00325 PE6, //LCD_COM2 00326 PE7 //LCD_COM3 00327 }; 00328 00329 #ifdef __cplusplus 00330 } 00331 #endif 00332 00333 #endif
Generated on Tue Jul 19 2022 15:26:32 by
1.7.2