comparison Scan/STLcd/lcd_scan.c @ 367:8a6c2d410ad9

Adding color association to layers
author Jacob Alexander <haata@kiibohd.com>
date Tue, 18 Aug 2015 10:46:55 -0700
parents 95ae53b1e088
children dbbdedccc275
comparison
equal deleted inserted replaced
366:95ae53b1e088 367:8a6c2d410ad9
377 { STLcdNumber7_define }, 377 { STLcdNumber7_define },
378 { STLcdNumber8_define }, 378 { STLcdNumber8_define },
379 { STLcdNumber9_define }, 379 { STLcdNumber9_define },
380 }; 380 };
381 381
382 // Color data for numbers
383 const uint16_t colors[10][3] = {
384 { STLcdNumber0Color_define },
385 { STLcdNumber1Color_define },
386 { STLcdNumber2Color_define },
387 { STLcdNumber3Color_define },
388 { STLcdNumber4Color_define },
389 { STLcdNumber5Color_define },
390 { STLcdNumber6Color_define },
391 { STLcdNumber7Color_define },
392 { STLcdNumber8Color_define },
393 { STLcdNumber9Color_define },
394 };
395
382 // Only display if there are layers active 396 // Only display if there are layers active
383 if ( macroLayerIndexStackSize > 0 ) 397 if ( macroLayerIndexStackSize > 0 )
384 { 398 {
399 // Set the color according to the "top-of-stack" layer
400 uint16_t layerIndex = macroLayerIndexStack[ macroLayerIndexStackSize - 1 ];
401 FTM0_C0V = colors[ layerIndex ][0];
402 FTM0_C1V = colors[ layerIndex ][1];
403 FTM0_C2V = colors[ layerIndex ][2];
385 404
386 // Iterate through each of the pages 405 // Iterate through each of the pages
387 // XXX Many of the values here are hard-coded 406 // XXX Many of the values here are hard-coded
388 // Eventually a proper font rendering engine should take care of things like this... -HaaTa 407 // Eventually a proper font rendering engine should take care of things like this... -HaaTa
389 for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ ) 408 for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ )
396 LCD_writeControlReg( 0x00 ); 415 LCD_writeControlReg( 0x00 );
397 416
398 // Write data 417 // Write data
399 for ( uint16_t layer = 1; layer <= macroLayerIndexStackSize; layer++ ) 418 for ( uint16_t layer = 1; layer <= macroLayerIndexStackSize; layer++ )
400 { 419 {
401 uint16_t layerIndex = macroLayerIndexStack[ macroLayerIndexStackSize - layer ]; 420 layerIndex = macroLayerIndexStack[ macroLayerIndexStackSize - layer ];
402 421
403 // Default to 0, if over 9 422 // Default to 0, if over 9
404 if ( layerIndex > 9 ) 423 if ( layerIndex > 9 )
405 { 424 {
406 layerIndex = 0; 425 layerIndex = 0;
421 } 440 }
422 } 441 }
423 } 442 }
424 else 443 else
425 { 444 {
445 // Set default backlight
446 FTM0_C0V = STLcdBacklightRed_define;
447 FTM0_C1V = STLcdBacklightGreen_define;
448 FTM0_C2V = STLcdBacklightBlue_define;
449
426 // Write default image 450 // Write default image
427 for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ ) 451 for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ )
428 LCD_writeDisplayReg( page, (uint8_t *)&STLcdDefaultImage[page * LCD_PAGE_LEN], LCD_PAGE_LEN ); 452 LCD_writeDisplayReg( page, (uint8_t *)&STLcdDefaultImage[page * LCD_PAGE_LEN], LCD_PAGE_LEN );
429 } 453 }
430 } 454 }