# HG changeset patch # User Jacob Alexander # Date 1439920015 25200 # Node ID 8a6c2d410ad902c62d9a16f6e138743d95b21b52 # Parent 95ae53b1e0885c77683e8186823605a0788c8c01 Adding color association to layers diff -r 95ae53b1e088 -r 8a6c2d410ad9 Scan/STLcd/lcd_scan.c --- a/Scan/STLcd/lcd_scan.c Tue Aug 18 01:10:44 2015 -0700 +++ b/Scan/STLcd/lcd_scan.c Tue Aug 18 10:46:55 2015 -0700 @@ -379,9 +379,28 @@ { STLcdNumber9_define }, }; + // Color data for numbers + const uint16_t colors[10][3] = { + { STLcdNumber0Color_define }, + { STLcdNumber1Color_define }, + { STLcdNumber2Color_define }, + { STLcdNumber3Color_define }, + { STLcdNumber4Color_define }, + { STLcdNumber5Color_define }, + { STLcdNumber6Color_define }, + { STLcdNumber7Color_define }, + { STLcdNumber8Color_define }, + { STLcdNumber9Color_define }, + }; + // Only display if there are layers active if ( macroLayerIndexStackSize > 0 ) { + // Set the color according to the "top-of-stack" layer + uint16_t layerIndex = macroLayerIndexStack[ macroLayerIndexStackSize - 1 ]; + FTM0_C0V = colors[ layerIndex ][0]; + FTM0_C1V = colors[ layerIndex ][1]; + FTM0_C2V = colors[ layerIndex ][2]; // Iterate through each of the pages // XXX Many of the values here are hard-coded @@ -398,7 +417,7 @@ // Write data for ( uint16_t layer = 1; layer <= macroLayerIndexStackSize; layer++ ) { - uint16_t layerIndex = macroLayerIndexStack[ macroLayerIndexStackSize - layer ]; + layerIndex = macroLayerIndexStack[ macroLayerIndexStackSize - layer ]; // Default to 0, if over 9 if ( layerIndex > 9 ) @@ -423,6 +442,11 @@ } else { + // Set default backlight + FTM0_C0V = STLcdBacklightRed_define; + FTM0_C1V = STLcdBacklightGreen_define; + FTM0_C2V = STLcdBacklightBlue_define; + // Write default image for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ ) LCD_writeDisplayReg( page, (uint8_t *)&STLcdDefaultImage[page * LCD_PAGE_LEN], LCD_PAGE_LEN );