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

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        : LCD222.C
  16. Purpose     : Color conversion routines for 222 mode
  17. ---------------------------END-OF-HEADER------------------------------
  18. */
  19. #include <stddef.h>           /* needed for definition of NULL */
  20. #include "LCD.H"           /* interface definitions */
  21. #include "LCD_Protected.h"    /* inter modul definitions */
  22. /*********************************************************************
  23. *
  24. *       LCD_FIXEDPALETTE == 222
  25. *
  26. *       64 colors
  27. *
  28. **********************************************************************
  29. */
  30. int LCD_Color2Index_222(LCD_COLOR Color) {
  31.   int r,g,b;
  32.   r = ((Color&255)      +0x2a)/0x55;
  33.   g = (((Color>>8)&255) +0x2a)/0x55;
  34.   b = (((Color>>16)&255)+0x2a)/0x55;
  35.   return r+(g<<2)+(b<<4);
  36. }
  37. LCD_COLOR LCD_Index2Color_222(int Index) {
  38.   U16P r,g,b;
  39.   r = ((Index>>0)&3)*0x55;
  40.   g = ((Index>>2)&3)*0x55;
  41.   b = (Index>>4)    *0x55;
  42.   return (((U32)b)<<16)|(g<<8)|r;
  43. }
  44. /*********************************************************************
  45. *
  46. *       LCD_FIXEDPALETTE == 222, Red/Blue swapped
  47. *
  48. *       64 colors
  49. *
  50. **********************************************************************
  51. */
  52. int LCD_Color2Index_M222(LCD_COLOR Color) {
  53.   int r,g,b;
  54.   r = ((Color&255)      +0x2a)/0x55;
  55.   g = (((Color>>8)&255) +0x2a)/0x55;
  56.   b = (((Color>>16)&255)+0x2a)/0x55;
  57.   return b+(g<<2)+(r<<4);
  58. }
  59. LCD_COLOR LCD_Index2Color_M222(int Index) {
  60.   U16P r,g,b;
  61.   r = ((Index>>0)&3)*0x55;
  62.   g = ((Index>>2)&3)*0x55;
  63.   b = (Index>>4)    *0x55;
  64.   return (((U32)r)<<16)|(g<<8)|b;
  65. }