GUIDEMO_LUT.c
上传用户:zbk8730
上传日期:2017-08-10
资源大小:12168k
文件大小:3k
源码类别:

uCOS

开发平台:

C/C++

  1. /*
  2. *********************************************************************************************************
  3. *                                                uC/GUI
  4. *                        Universal graphic software for embedded applications
  5. *
  6. *                       (c) Copyright 2002, Micrium Inc., Weston, FL
  7. *                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
  8. *
  9. *              礐/GUI is protected by international copyright laws. Knowledge of the
  10. *              source code may not be used to write a similar product. This file may
  11. *              only be used in accordance with a license and should not be redistributed
  12. *              in any way. We appreciate your understanding and fairness.
  13. *
  14. ----------------------------------------------------------------------
  15. File        : GUIDEMO_Lut.c
  16. Purpose     : Modify lookup table
  17. ----------------------------------------------------------------------
  18. */
  19. #include "GUI.H"
  20. #include "GUIDEMO.H"
  21. //#include "LCD_ConfDefaults.h"  /* valid LCD configuration */
  22. /*********************************************************************
  23. *
  24. *       Static functions
  25. *
  26. **********************************************************************
  27. */
  28. static void _ModifyLUT(int RFaktor, int GFaktor, int BFaktor) {
  29.   int NumColors = LCD_GetDevCap(LCD_DEVCAP_NUMCOLORS);
  30.   int i;
  31.   for (i = 0; (i < NumColors) && !GUIDEMO_CheckCancel(); i++) {    
  32.     U32 Color = LCD_GetDevCap(LCD_DEVCAP_COLOR + i);
  33.     U32 R = Color & 0xff;
  34.     U32 G = (Color >> 8)  & 0xff;
  35.     U32 B = (Color >> 16) & 0xff;
  36.     /* Now modify color */
  37.     R = (R * RFaktor) / 100; if (R > 255) R = 255;
  38.     G = (G * GFaktor) / 100; if (G > 255) G = 255;
  39.     B = (B * BFaktor) / 100; if (B > 255) B = 255;
  40.     /* Write modified color into lookup table */
  41.     Color = R | (G << 8) | (B << 16);
  42.     GUI_SetLUTEntry((U8)i, Color);    
  43.   }
  44. }
  45. /*********************************************************************
  46. *
  47. *       GUIDEMO_DemoLUT
  48. *
  49. **********************************************************************
  50. */
  51. #if (LCD_BITSPERPIXEL > 2) && (LCD_BITSPERPIXEL <= 8)
  52. void GUIDEMO_DemoLUT(void) {
  53.   int i;
  54.   GUIDEMO_ShowIntro("Modify LUT", "... after drawing color bars");
  55.   GUIDEMO_ShowColorBar();
  56. for (i = 100; (i >= 0) && !GUIDEMO_CheckCancel(); i -= 2) {
  57.     _ModifyLUT(100, 100, i);
  58.     GUI_Delay(20);
  59. }
  60. for (i = 100; (i >= 0) && !GUIDEMO_CheckCancel(); i -= 2) {
  61.     _ModifyLUT(100, i, 0);
  62.     GUI_Delay(20);
  63. }
  64. for (i = 100; (i >= 0) && !GUIDEMO_CheckCancel(); i -= 2) {
  65.     _ModifyLUT(i, i, i);
  66.     GUI_Delay(20);
  67. }
  68.   LCD_InitLUT();
  69.   GUIDEMO_Wait();
  70. }
  71. #else
  72. void GUIDEMO_DemoLUT(void) {}
  73. #endif