⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 osd_temp.lst

📁 一个LCD TV的源程序, 用的是realtek的IC
💻 LST
字号:
C51 COMPILER V7.07   OSD_TEMP                                                              05/03/2006 14:04:39 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE OSD_TEMP
OBJECT MODULE PLACED IN OSD_temp.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE OSD_temp.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*********************************************************************
   2          
   3                COPYRIGHT  (C)  Himax Technologies, Inc.
   4          
   5                File name     : OSD.c
   6          
   7                Description   : Declare OSD Function
   8          
   9                Author        : Taylor
  10          
  11                Create date   : 2004/10/18
  12          
  13                Modifications :
  14          *********************************************************************/
  15          
  16          #define _OSD_C
  17          
  18          /********************** Include Section *****************************/
  19          
  20          #include "osd.h"
  21          #include "osd_font.h"
  22          
  23          /********************** Function Implementation *********************/
  24          
  25          code unsigned char     // font address
  26          ICONGROUP[TOTAL_ICON][2] = {{0x3C, 0x3D}, {0x3E, 0x3F}, {0x40, 0x41}, {0x42, 0x43}, {0x44, 0x45},
  27                              {0x46, 0x47}, {0x48, 0x49}, {0x4A, 0x4B}, {0x4E, 0x4F}, {0x4C, 0x4D}
  28                             };
  29          code unsigned char     // display address
  30          //                     Bri   Cont  HUE   Vol   OSD   Time  Sharp Lan  Source  Exit
  31          ICONPOS[TOTAL_ICON] = {0x42, 0x45, 0x48, 0x4B, 0x4E, 0x51, 0x54, 0x57, 0x5A, 0x5D};
*** WARNING C231 IN LINE 31 OF OSD_TEMP.C: 'ICONPOS': redefinition
  32          /* ================================================================
  33              Name    : SetFonts
  34              Purpose : Set OSD Fonts to HX8824
  35              Passed  : None
  36              Notes   : None
  37             ================================================================ */
  38          
  39          void Init_OSD(void)
  40          {
  41   1          // Turn OFF OSD
  42   1          I2CWriteByte(HX8824_ADDR, HX8824_OSD_CTRL, 0x00);
  43   1          // OSD set pallete
  44   1          OsdSetPallete();
  45   1          // Load OSD Data to HX8824's RAM
  46   1          SetFonts();
*** WARNING C209 IN LINE 46 OF OSD_TEMP.C: '_SetFonts': too few actual parameters
  47   1          // Setup OSD Fonts Size
  48   1          I2CWriteByte(HX8824_ADDR, HX8824_OSD_SIZE, (OSD_Y_Ratio << 4) | OSD_X_Ratio) ;
  49   1          // Setup OSD Blink Rate
  50   1          I2CWriteByte(HX8824_ADDR, HX8824_OSD_BLNKRATE, 0x88);
  51   1          I2CWrite2Byte(HX8824_ADDR, HX8824_OSD_Alpha, 0x20, 0x08);
  52   1          OsdDrawing();
  53   1          // OSD Enable
C51 COMPILER V7.07   OSD_TEMP                                                              05/03/2006 14:04:39 PAGE 2   

  54   1          //I2CWriteByte(HX8824_ADDR, HX8824_OSD_CTRL, 0x80);
  55   1      }
  56          
  57          
  58          /* ================================================================
  59              Name    : SetFonts
  60              Purpose : Set OSD Fonts to HX8824
  61              Passed  : None
  62              Notes   : None
  63             ================================================================ */
  64          
  65          void SetFonts(void)
  66          {
  67   1          // Declare Counter Variable
  68   1          Word i;
  69   1      
  70   1          // Setup Mono/2-Bits/3-bits/4-Bits Color Font Number
  71   1          I2CWrtHead( HX8824_ADDR, HX8824_OSD_COLOR_FONT_NUMBER );   // 0xC9
  72   1          for(i = 0; i < 4; i++)
  73   1          {
  74   2              Write(HX8824_COLOR_COUNT[i]);
  75   2          }
  76   1          Stop();
  77   1      
  78   1          // Point to Font First Address
  79   1          I2CWrtHead( HX8824_ADDR, HX8824_FONT_IND_ADR );   // 0xBA
  80   1              Write(0x00);
  81   1              Write(0x00);
  82   1      
  83   1          // Address = 0x00 --> First Data is Empty          addr: 0
  84   1          for (i = 0; i < 27; i++)
  85   1          {
  86   2              Write(FontAsciiSpace[i]);
  87   2          }
  88   1      
  89   1          // Address = 0x01 --> FontAscii_A_Z                addr: 0x01~0x1A
  90   1          for (i = 0; i < 26*27; i++)
  91   1          {
  92   2              Write(FontAscii_A_Z[i]);
  93   2          }
  94   1      
  95   1          // Address = 0x1B --> FontAscii_0_9               addr: 0x1B~0x24
  96   1          for (i = 0; i < 10*27; i++)
  97   1          {
  98   2              Write(FontAscii_0_9[i]);
  99   2          }
 100   1      
 101   1          // Address = 0x25 --> FontIcon                addr: 0x25~0x2A--> border;0x32~0x61 icon
 102   1          for (i = 0; i < 65*27; i++)
 103   1          {
 104   2              Write(FontIcon[i]);
 105   2          }
 106   1      
 107   1      /*
 108   1          // Address = 0x01 --> Chinese_0                    addr: 32
 109   1          for (i = 0; i < 31*27; i++)
 110   1          {
 111   1              Write(FontTraditionalChinese_0[i]);
 112   1          }
 113   1      
 114   1          // Address =0x20 --> Empty                         addr: 33
 115   1          for (i = 0; i < 27; i++)
C51 COMPILER V7.07   OSD_TEMP                                                              05/03/2006 14:04:39 PAGE 3   

 116   1          {
 117   1              Write(FontAsciiSpace[i]);
 118   1          }
 119   1      
 120   1          // Address = 0x21 --> Chinese_1                    addr: 48
 121   1          for (i = 0; i < 15*27; i++)
 122   1          {
 123   1              Write(FontTraditionalChinese_1[i]);
 124   1          }
 125   1      
 126   1          // Address = 0x3A --> FontTraditionalChinese_2     addr: 64
 127   1          for (i = 0; i < 6*27; i++)
 128   1          {
 129   1              Write(FontTraditionalChinese_2[i]);
 130   1          }
 131   1      
 132   1          // ============================== //
 133   1          // Address =0x40 --> Now is Empty //
 134   1          // ============================== //               addr: 65
 135   1          for (i = 0; i < 27; i++)
 136   1          {
 137   1              Write(FontAsciiSpace[i]);
 138   1          }
 139   1      */
 140   1          Stop();
 141   1      
 142   1      }
 143          
 144          /* ================================================================
 145              Name    : OsdSetStrValueBL
 146              Purpose : Write OSD One Line String
 147              Passed  : None
 148              Notes   : None
 149             ================================================================ */
 150          /*
 151          void OsdSetStrValueBL(Byte byRow, Byte byCol,
 152                                Byte bkColor, Byte frColor,
 153                                Byte length, Byte *ascii)
 154          {
 155                  Byte jj;
 156              Word kk;
 157          
 158              kk= byRow*40 + byCol;
 159                  I2CWrtHead(HX8824_ADDR, HX8824_DISPLAY_AREA_Y);
 160                  Write((Byte)(kk));
 161                  Write((Byte)(kk>>8));
 162                  Write(bkColor);
 163              Write(frColor);
 164                  while (length--)
 165                  {
 166                          if (*ascii == '\0')
 167                          {
 168                                  Write (0x00);
 169                              for (jj=0 ; jj< length ; jj++)      Write (0x00);
 170                                  goto Stop_write;
 171                          }
 172                          else
 173                          {
 174                                  Write   (*ascii);
 175                          }
 176                          ascii++;
 177                  }
C51 COMPILER V7.07   OSD_TEMP                                                              05/03/2006 14:04:39 PAGE 4   

 178          
 179          Stop_write:
 180                  Stop();
 181          }
 182          */
 183          
 184          /* ================================================================
 185              Name    : SetOsdAlpha
 186              Purpose : Set OSD Alpha
 187              Passed  : Foreground --> Set Foreground
 188                        Background --> Set Background
 189              Notes   : None
 190             ================================================================ */
 191          /*
 192          void SetOsdAlpha(Byte byIndex,Byte byValue)
 193          {
 194              // According to byIndex to select background/foreground alpha
 195              switch(byIndex)
 196              {
 197                  case Foreground:
 198                      I2CWriteByte(HX8824_ADDR, HX8824_OSD_Alpha_Fore, byValue);
 199                      break;
 200          
 201                  case Background:
 202                      I2CWriteByte(HX8824_ADDR, HX8824_OSD_Alpha_Back, byValue);
 203                      break;
 204              }
 205          }
 206          */
 207          
 208          /* ================================================================
 209              Name    : OsdSetChanelValue
 210              Purpose : Write OSD One Line String
 211              Passed  : None
 212              Notes   : None
 213             ================================================================ */
 214          /*
 215          void OsdSetChanelValue(Byte byRow, Byte byCol,
 216                                Byte bkColor, Byte frColor,
 217                                Byte byChannel)
 218          {
 219                  Byte jj;
 220              Word kk;
 221          
 222              Clear_OSD();
 223          
 224              kk= byRow*40 + byCol;
 225                  I2CWrtHead(HX8824_ADDR, HX8824_DISPLAY_AREA_Y);
 226                  Write((Byte)(kk));
 227                  Write((Byte)(kk>>8));
 228                  Write(bkColor);
 229              Write(frColor);
 230          
 231              // Process κ

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -