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_tg.h
00001 /**************************************************************************//** 00002 * @file 00003 * @brief Segment LCD Config for the EFM32 Tiny Gecko STK (STK_3300) 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 LCD_SYMBOL_GECKO, 00028 LCD_SYMBOL_ANT, 00029 LCD_SYMBOL_PAD0, 00030 LCD_SYMBOL_PAD1, 00031 LCD_SYMBOL_EFM32, 00032 LCD_SYMBOL_MINUS, 00033 LCD_SYMBOL_COL3, 00034 LCD_SYMBOL_COL5, 00035 LCD_SYMBOL_COL10, 00036 LCD_SYMBOL_DEGC, 00037 LCD_SYMBOL_DEGF, 00038 LCD_SYMBOL_DP2, 00039 LCD_SYMBOL_DP3, 00040 LCD_SYMBOL_DP4, 00041 LCD_SYMBOL_DP5, 00042 LCD_SYMBOL_DP6, 00043 LCD_SYMBOL_DP10, 00044 } lcdSymbol; 00045 00046 #define LCD_SYMBOL_GECKO_COM 1 00047 #define LCD_SYMBOL_GECKO_SEG 0 00048 #define LCD_SYMBOL_ANT_COM 0 00049 #define LCD_SYMBOL_ANT_SEG 12 00050 #define LCD_SYMBOL_PAD0_COM 3 00051 #define LCD_SYMBOL_PAD0_SEG 19 00052 #define LCD_SYMBOL_PAD1_COM 2 00053 #define LCD_SYMBOL_PAD1_SEG 0 00054 #define LCD_SYMBOL_EFM32_COM 0 00055 #define LCD_SYMBOL_EFM32_SEG 8 00056 #define LCD_SYMBOL_MINUS_COM 3 00057 #define LCD_SYMBOL_MINUS_SEG 0 00058 #define LCD_SYMBOL_COL3_COM 4 00059 #define LCD_SYMBOL_COL3_SEG 0 00060 #define LCD_SYMBOL_COL5_COM 0 00061 #define LCD_SYMBOL_COL5_SEG 10 00062 #define LCD_SYMBOL_COL10_COM 5 00063 #define LCD_SYMBOL_COL10_SEG 19 00064 #define LCD_SYMBOL_DEGC_COM 0 00065 #define LCD_SYMBOL_DEGC_SEG 14 00066 #define LCD_SYMBOL_DEGF_COM 0 00067 #define LCD_SYMBOL_DEGF_SEG 15 00068 #define LCD_SYMBOL_DP2_COM 7 00069 #define LCD_SYMBOL_DP2_SEG 0 00070 #define LCD_SYMBOL_DP3_COM 5 00071 #define LCD_SYMBOL_DP3_SEG 0 00072 #define LCD_SYMBOL_DP4_COM 6 00073 #define LCD_SYMBOL_DP4_SEG 0 00074 #define LCD_SYMBOL_DP5_COM 7 00075 #define LCD_SYMBOL_DP5_SEG 9 00076 #define LCD_SYMBOL_DP6_COM 7 00077 #define LCD_SYMBOL_DP6_SEG 11 00078 #define LCD_SYMBOL_DP10_COM 4 00079 #define LCD_SYMBOL_DP10_SEG 19 00080 00081 #define LCD_STK3300 TRUE 00082 #define LCD_DISPLAY_TYPE 8x20 00083 #define LCD_BOOST_LEVEL lcdVBoostLevel3 00084 00085 /* LCD Controller Prescaler (divide LFACLK / 64) */ 00086 /* LFACLK_LCDpre = 512 Hz */ 00087 /* Set FDIV=0, means 512/1 = 512 Hz */ 00088 /* With octaplex mode, 512/16 => 32 Hz Frame Rate */ 00089 #define LCD_CMU_CLK_PRE cmuClkDiv_64 00090 #define LCD_CMU_CLK_DIV cmuClkDiv_1 00091 00092 #define LCD_INIT_DEF \ 00093 { true,\ 00094 lcdMuxOctaplex,\ 00095 lcdBiasOneFourth,\ 00096 lcdWaveLowPower,\ 00097 lcdVLCDSelVDD,\ 00098 lcdConConfVLCD } 00099 00100 #define LCD_NUMBER_OFF() \ 00101 do { \ 00102 LCD_SegmentSetLow(0, 0x00078000, 0x00000000);\ 00103 LCD_SegmentSetLow(1, 0x00078000, 0x00000000);\ 00104 LCD_SegmentSetLow(2, 0x00078000, 0x00000000);\ 00105 LCD_SegmentSetLow(3, 0x00078000, 0x00000000);\ 00106 LCD_SegmentSetLow(4, 0x00078000, 0x00000000);\ 00107 LCD_SegmentSetLow(5, 0x00078000, 0x00000000);\ 00108 LCD_SegmentSetLow(6, 0x00078000, 0x00000000);\ 00109 LCD_SegmentSetLow(7, 0x00078000, 0x00000000);\ 00110 } while (0) 00111 00112 #define LCD_ALPHA_NUMBER_OFF() \ 00113 do { \ 00114 LCD_SegmentSetLow(7, 0x000075FE, 0x00000000);\ 00115 LCD_SegmentSetLow(6, 0x00007FFE, 0x00000000);\ 00116 LCD_SegmentSetLow(5, 0x00007FFE, 0x00000000);\ 00117 LCD_SegmentSetLow(4, 0x00007FFE, 0x00000000);\ 00118 LCD_SegmentSetLow(3, 0x00007FFE, 0x00000000);\ 00119 LCD_SegmentSetLow(2, 0x00007FFE, 0x00000000);\ 00120 LCD_SegmentSetLow(1, 0x00007FFE, 0x00000000);\ 00121 LCD_SegmentSetLow(0, 0x00000A00, 0x00000000);\ 00122 } while(0) 00123 00124 #define LCD_ALL_SEGMENTS_OFF() \ 00125 do { \ 00126 LCD_SegmentSetLow(0, 0xFFFFFFFF, 0x00000000);\ 00127 LCD_SegmentSetLow(1, 0xFFFFFFFF, 0x00000000);\ 00128 LCD_SegmentSetLow(2, 0xFFFFFFFF, 0x00000000);\ 00129 LCD_SegmentSetLow(3, 0xFFFFFFFF, 0x00000000);\ 00130 LCD_SegmentSetLow(4, 0xFFFFFFFF, 0x00000000);\ 00131 LCD_SegmentSetLow(5, 0xFFFFFFFF, 0x00000000);\ 00132 LCD_SegmentSetLow(6, 0xFFFFFFFF, 0x00000000);\ 00133 LCD_SegmentSetLow(7, 0xFFFFFFFF, 0x00000000);\ 00134 } while(0) 00135 00136 #define LCD_ALL_SEGMENTS_ON() \ 00137 do { \ 00138 LCD_SegmentSetLow(0, 0xFFFFFFFF, 0xFFFFFFFF);\ 00139 LCD_SegmentSetLow(1, 0xFFFFFFFF, 0xFFFFFFFF);\ 00140 LCD_SegmentSetLow(2, 0xFFFFFFFF, 0xFFFFFFFF);\ 00141 LCD_SegmentSetLow(3, 0xFFFFFFFF, 0xFFFFFFFF);\ 00142 LCD_SegmentSetLow(4, 0xFFFFFFFF, 0xFFFFFFFF);\ 00143 LCD_SegmentSetLow(5, 0xFFFFFFFF, 0xFFFFFFFF);\ 00144 LCD_SegmentSetLow(6, 0xFFFFFFFF, 0xFFFFFFFF);\ 00145 LCD_SegmentSetLow(7, 0xFFFFFFFF, 0xFFFFFFFF);\ 00146 } while(0) 00147 00148 #define LCD_SEGMENTS_ENABLE() \ 00149 do { \ 00150 LCD_SegmentRangeEnable(lcdSegmentAll, true);\ 00151 } while(0) 00152 00153 #define LCD_DISPLAY_ENABLE() \ 00154 do { \ 00155 ;\ 00156 } while(0) 00157 00158 #define EFM_DISPLAY_DEF {\ 00159 .Text = {\ 00160 { /* 1 */\ 00161 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\ 00162 .bit[0] = 1, .bit[1] = 2, .bit[2] = 2, .bit[3] = 2,\ 00163 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\ 00164 .bit[4] = 1, .bit[5] = 1, .bit[6] = 1, .bit[7] = 1,\ 00165 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\ 00166 .bit[8] = 2, .bit[9] = 2, .bit[10] = 2, .bit[11] = 2,\ 00167 .com[12] = 5, .com[13] = 6,\ 00168 .bit[12] = 1, .bit[13] = 1\ 00169 },\ 00170 { /* 2 */\ 00171 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\ 00172 .bit[0] = 3, .bit[1] = 4, .bit[2] = 4, .bit[3] = 4,\ 00173 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\ 00174 .bit[4] = 3, .bit[5] = 3, .bit[6] = 3, .bit[7] = 3,\ 00175 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\ 00176 .bit[8] = 4, .bit[9] = 4, .bit[10] = 4, .bit[11] = 4,\ 00177 .com[12] = 5, .com[13] = 6,\ 00178 .bit[12] = 3, .bit[13] = 3\ 00179 },\ 00180 { /* 3 */\ 00181 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\ 00182 .bit[0] = 5, .bit[1] = 6, .bit[2] = 6, .bit[3] = 6,\ 00183 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\ 00184 .bit[4] = 5, .bit[5] = 5, .bit[6] = 5, .bit[7] = 5,\ 00185 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\ 00186 .bit[8] = 6, .bit[9] = 6, .bit[10] = 6, .bit[11] = 6,\ 00187 .com[12] = 5, .com[13] = 6,\ 00188 .bit[12] = 5, .bit[13] = 5\ 00189 },\ 00190 { /* 4 */\ 00191 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\ 00192 .bit[0] = 7, .bit[1] = 8, .bit[2] = 8, .bit[3] = 8,\ 00193 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\ 00194 .bit[4] = 7, .bit[5] = 7, .bit[6] = 7, .bit[7] = 7,\ 00195 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\ 00196 .bit[8] = 8, .bit[9] = 8, .bit[10] = 8, .bit[11] = 8,\ 00197 .com[12] = 5, .com[13] = 6,\ 00198 .bit[12] = 7, .bit[13] = 7\ 00199 },\ 00200 { /* 5 */\ 00201 .com[0] = 0, .com[1] = 1, .com[2] = 5, .com[3] = 7,\ 00202 .bit[0] = 9, .bit[1] = 10, .bit[2] = 10, .bit[3] = 10,\ 00203 .com[4] = 6, .com[5] = 2, .com[6] = 3, .com[7] = 1,\ 00204 .bit[4] = 9, .bit[5] = 9, .bit[6] = 9, .bit[7] = 9,\ 00205 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\ 00206 .bit[8] = 10, .bit[9] = 10, .bit[10] = 10, .bit[11] = 10,\ 00207 .com[12] = 4, .com[13] = 5,\ 00208 .bit[12] = 9, .bit[13] = 9\ 00209 },\ 00210 { /* 6 */\ 00211 .com[0] = 0, .com[1] = 1, .com[2] = 5, .com[3] = 7,\ 00212 .bit[0] = 11, .bit[1] = 12, .bit[2] = 12, .bit[3] = 12,\ 00213 .com[4] = 6, .com[5] = 2, .com[6] = 3, .com[7] = 1,\ 00214 .bit[4] = 11, .bit[5] = 11, .bit[6] = 11, .bit[7] = 11,\ 00215 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\ 00216 .bit[8] = 12, .bit[9] = 12, .bit[10] = 12, .bit[11] = 12,\ 00217 .com[12] = 4, .com[13] = 5,\ 00218 .bit[12] = 11, .bit[13] = 11\ 00219 },\ 00220 { /* 7 */\ 00221 .com[0] = 1, .com[1] = 1, .com[2] = 5, .com[3] = 7,\ 00222 .bit[0] = 13, .bit[1] = 14, .bit[2] = 14, .bit[3] = 14,\ 00223 .com[4] = 7, .com[5] = 3, .com[6] = 4, .com[7] = 2,\ 00224 .bit[4] = 13, .bit[5] = 13, .bit[6] = 13, .bit[7] = 13,\ 00225 .com[8] = 3, .com[9] = 2, .com[10] = 4, .com[11] = 6,\ 00226 .bit[8] = 14, .bit[9] = 14, .bit[10] = 14, .bit[11] = 14,\ 00227 .com[12] = 5, .com[13] = 6,\ 00228 .bit[12] = 13, .bit[13] = 13\ 00229 },\ 00230 },\ 00231 .Number = {\ 00232 {\ 00233 .com[0] = 7, .com[1] = 5, .com[2] = 2, .com[3] = 1,\ 00234 .bit[0] = 15, .bit[1] = 15, .bit[2] = 15, .bit[3] = 15,\ 00235 .com[4] = 3, .com[5] = 6, .com[6] = 4,\ 00236 .bit[4] = 15, .bit[5] = 15, .bit[6] = 15,\ 00237 },\ 00238 {\ 00239 .com[0] = 7, .com[1] = 5, .com[2] = 2, .com[3] = 1,\ 00240 .bit[0] = 16, .bit[1] = 16, .bit[2] = 16, .bit[3] = 16,\ 00241 .com[4] = 3, .com[5] = 6, .com[6] = 4,\ 00242 .bit[4] = 16, .bit[5] = 16, .bit[6] = 16,\ 00243 },\ 00244 {\ 00245 .com[0] = 7, .com[1] = 5, .com[2] = 2, .com[3] = 1,\ 00246 .bit[0] = 17, .bit[1] = 17, .bit[2] = 17, .bit[3] = 17,\ 00247 .com[4] = 3, .com[5] = 6, .com[6] = 4,\ 00248 .bit[4] = 17, .bit[5] = 17, .bit[6] = 17,\ 00249 },\ 00250 {\ 00251 .com[0] = 7, .com[1] = 5, .com[2] = 2, .com[3] = 1,\ 00252 .bit[0] = 18, .bit[1] = 18, .bit[2] = 18, .bit[3] = 18,\ 00253 .com[4] = 3, .com[5] = 6, .com[6] = 4,\ 00254 .bit[4] = 18, .bit[5] = 18, .bit[6] = 18,\ 00255 },\ 00256 },\ 00257 .EMode = {\ 00258 .com[0] = 0, .bit[0] = 19,\ 00259 .com[1] = 1, .bit[1] = 19,\ 00260 .com[2] = 7, .bit[2] = 19,\ 00261 .com[3] = 2, .bit[3] = 19,\ 00262 .com[4] = 6, .bit[4] = 19,\ 00263 },\ 00264 .ARing = {\ 00265 .com[0] = 0, .bit[0] = 7,\ 00266 .com[1] = 0, .bit[1] = 6,\ 00267 .com[2] = 0, .bit[2] = 5,\ 00268 .com[3] = 0, .bit[3] = 4,\ 00269 .com[4] = 0, .bit[4] = 3,\ 00270 .com[5] = 0, .bit[5] = 2,\ 00271 .com[6] = 0, .bit[6] = 1,\ 00272 .com[7] = 0, .bit[7] = 0,\ 00273 },\ 00274 .Battery = {\ 00275 .com[0] = 0, .bit[0] = 13,\ 00276 .com[1] = 0, .bit[1] = 17,\ 00277 .com[2] = 0, .bit[2] = 16,\ 00278 .com[3] = 0, .bit[3] = 18,\ 00279 }\ 00280 } 00281 00282 static const PinName outPins[] = { 00283 /* SEG28..39 */ 00284 PA7, //LCD_SEG35 00285 PA8, //LCD_SEG36 00286 PA9, //LCD_SEG37 00287 PA10, //LCD_SEG38 00288 PA11, //LCD_SEG39 00289 PB0, //LCD_SEG32 00290 PB1, //LCD_SEG33 00291 PB2, //LCD_SEG34 00292 PD9, //LCD_SEG28 00293 PD10, //LCD_SEG29 00294 PD11, //LCD_SEG30 00295 PD12, //LCD_SEG31 00296 /* SEG12..19 */ 00297 PA0, //LCD_SEG13 00298 PA1, //LCD_SEG14 00299 PA2, //LCD_SEG15 00300 PA3, //LCD_SEG16 00301 PA4, //LCD_SEG17 00302 PA5, //LCD_SEG18 00303 PA6, //LCD_SEG19 00304 PA15, //LCD_SEG12 00305 /* COM4..7 */ 00306 PB3, //LCD_COM4 00307 PB4, //LCD_COM5 00308 PB5, //LCD_COM6 00309 PB6, //LCD_COM7 00310 /* COM0..3 */ 00311 PE4, //LCD_COM0 00312 PE5, //LCD_COM1 00313 PE6, //LCD_COM2 00314 PE7 //LCD_COM3 00315 }; 00316 00317 #ifdef __cplusplus 00318 } 00319 #endif 00320 00321 #endif
Generated on Tue Jul 19 2022 15:26:32 by
1.7.2