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

📄 osdfunc.lst

📁 MST720-DEMO程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   OSDFUNC                                                               03/18/2008 22:29:10 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE OSDFUNC
OBJECT MODULE PLACED IN ..\1out\OSDFunc.obj
COMPILER INVOKED BY: D:\设计软件\Keil\C51\BIN\C51.EXE ..\UI\OSDFunc.c BROWSE INCDIR(..\INC\;..\PANEL\;..\UI\;..\OPTION\;
                    -..\SCALER\DSP\) DEFINE(MCU_TYPE_SEL=0) DEBUG OBJECTEXTEND PRINT(..\1out\OSDFunc.lst) OBJECT(..\1out\OSDFunc.obj)

line level    source

   1          /******************************************************************************
   2           Copyright (c) 2005 MStar Semiconductor, Inc.
   3           All rights reserved.
   4          
   5           [Module Name]: OSDFunc.c
   6           [Date]:        04-Feb-2005
   7           [Comment]:
   8             OSD functions for Maria(MST7XXX) Chip.
   9           [Reversion History]:
  10          *******************************************************************************/
  11          #define _OSDFUNC_C_
  12          
  13          /********************
  14          * INCLUDE FILES     *
  15          *********************/
  16          #include "Project.h"
  17          #include "Global.h"
  18          #include "TypeDef.h"
  19          #include "debug.h"
  20          #include "Ms_rwreg.h"
  21          #include "Misc.h"
  22          #include "Ms7x_reg.h"
  23          #include "Mst7x.h"
  24          #include "Ms_Func.h"
  25          #include "OSDMenu.h"
  26          #include "OSDFunc.h"
  27          #include "Font.h"
  28          #include "PANEL.h"
  29          
  30          /********************
  31          * VARIABLEV DEFINE    *
  32          *********************/
  33          //BYTE g_ucOsdFontColor;
  34          
  35          /**********************
  36          * FUNCTION PROTOTYPES *
  37          ***********************/
  38          void osdOSDWriteByte(BYTE address, BYTE value)
  39          {
  40   1              mstWriteByte(BK0_A1_OSDRA, address);
  41   1              mstWriteByte(BK0_A2_OSDRD, value);
  42   1        
  43   1      }
  44          
  45          /*BYTE OSD_mStar_ReadOSDByte(BYTE address)
  46          {
  47                  mstWriteByte(BK0_A1_OSDRA, address);
  48                  return mstReadByte(BK0_A2_OSDRD);
  49          }*/
  50          
  51          void osdOSDLoadPalette(BYTE *colorPtr, BYTE num)
  52          {
  53   1              mstWriteByte(BK0_A1_OSDRA, OSD_28_CLR0R);
  54   1              mstWriteData(BK0_A2_OSDRD, colorPtr, num, 0);
C51 COMPILER V7.50   OSDFUNC                                                               03/18/2008 22:29:10 PAGE 2   

  55   1      }
  56          
  57          void osdOSDLoadFont(BYTE addr, BYTE *fontPtr, WORD num)
  58          {
  59   1              mstWriteByte(BK0_A3_RAMFA, addr);
  60   1      
  61   1              mstWriteData(BK0_A4_RAMFD, fontPtr, num, 0);
  62   1              /*mStar_WriteDDRByte(BK0_A3_RAMFA, addr);
  63   1              while (num--)
  64   1                      mStar_WriteDDRByte(BK0_A4_RAMFD, *(fontPtr++));*/
  65   1      }
  66          
  67          void osdOSDClearAll(void)
  68          {
  69   1              BYTE ucRetry = 10;
  70   1              mstWriteByte(BK0_A0_OSDIOA, CLR_B);
  71   1              
  72   1              while (ucRetry--)
  73   1              {
  74   2                      miscDelay1ms(3);
  75   2                      if ((mstReadByte(BK0_A0_OSDIOA)&CLR_B)==0)
  76   2                              break;
  77   2              }
  78   1      }
  79          
  80          void osdOSDEnable(void)
  81          {
  82   1              osdOSDWriteByte(OSD_0C_IOSDC1, (((OSD_WIN_VZOOM&0x03)<<6)+((OSD_WIN_HZOOM&0x03)<<4)+MWIN_B));
  83   1      }
  84          
  85          void osdOSDDisable(void)
  86          {
  87   1              osdOSDWriteByte(OSD_0C_IOSDC1, 0x00);
  88   1              miscDelay1ms(20);
  89   1              mstPowerManagement(PM_OSD_TURN_OFF);
  90   1              g_ucSystemFlag |= SAVE_SETTING_FLAG;
  91   1      }
  92          
  93          
  94          void osdOSDSetFrame(BYTE PositionX, BYTE PositionY, BYTE Width, BYTE Height)
  95          {
  96   1              DWORD ulTemp;
  97   1              // Set X position
  98   1              ulTemp=((DWORD)PositionX*(PANEL_WIDTH-(WORD)Width*12*(OSD_WIN_HZOOM+1)))/100+PANEL_HSTART-48;
  99   1              //ulTemp=ulTemp/4;
 100   1              osdOSDWriteByte(OSD_02_OHSTA_L, ulTemp&0xFF);
 101   1              osdOSDWriteByte(OSD_03_OHSTA_H, ulTemp>>8);
 102   1              // Set Y position
 103   1              ulTemp=((DWORD)PositionY*(PANEL_HEIGHT-(WORD)Height*18*(OSD_WIN_VZOOM+1)))/100;
 104   1              //ulTemp=ulTemp/4;;
 105   1              osdOSDWriteByte(OSD_04_OVSTA_L, ulTemp&0xFF);
 106   1              osdOSDWriteByte(OSD_05_OVSTA_H, ulTemp>>8);
 107   1              
 108   1              // Set OSD frame width size
 109   1              osdOSDWriteByte(OSD_06_OSDW, Width-1);
 110   1              // Set OSD frame height size
 111   1              osdOSDWriteByte(OSD_07_OSDH, Height-1);
 112   1              // Frame Offset
 113   1              //mStar_WriteOSDByte(OSD_12_OCBUFO, Width-1);
 114   1              osdOSDWriteByte(OSD_12_OCBUFO, 0x00);
 115   1        
 116   1      }
C51 COMPILER V7.50   OSDFUNC                                                               03/18/2008 22:29:10 PAGE 3   

 117          
 118          void osdOSDSetStringColor(BYTE FGC, BYTE BGC)
 119          {
 120   1              g_ucOsdFontColor = ((FGC&0x0F)<<4)+(BGC&0x0F);
 121   1      }
 122          
 123          void osdOSDPrintString(BYTE xPos, BYTE yPos, BYTE ucLanguage, BYTE *str, BYTE FGC, BYTE BGC)
 124          {
 125   1              WORD uwAddress;
 126   1              BYTE ucLoop,x;
 127   1              BYTE ucDrawCode=TRUE;
 128   1      
 129   1              if (yPos&_BIT7)
 130   1                      ucDrawCode=FALSE;
 131   1              
 132   1              yPos&=0x3F;//~(BIT7|BIT6);
 133   1              ucLoop = 0;
 134   1              uwAddress=(WORD)yPos*OSD_MAINMENU_WIDTH+xPos; // get real address
 135   1      
 136   1              osdOSDSetStringColor(FGC, BGC);
 137   1      
 138   1              x=0;
 139   1              ucLoop=0;
 140   1      
 141   1              for (x=0;x<255;x++)
 142   1              {
 143   2                      if(ucLoop==ucLanguage)
 144   2                              break;
 145   2                      if(str[x]==0xff)
 146   2                              ucLoop+=1;
 147   2                              
 148   2              }
 149   1              
 150   1              mstWriteWord(BK0_A9_DISPAA_H, uwAddress);               // BK0_A8_DISPAA_L, BK0_A9_DISPAA_H
 151   1              
 152   1              for (ucLoop = x; ucLoop<0xff; ucLoop++)
 153   1              {
 154   2                  if (str[ucLoop]!=0xff)
 155   2                      mstWriteByte(BK0_AA_DISPAD, g_ucOsdFontColor);
 156   2                   else
 157   2                       break;
 158   2              }
 159   1              
 160   1              if (ucDrawCode==TRUE)
 161   1              {
 162   2                      mstWriteWord(BK0_A6_DISPCA_H, uwAddress);       // BK0_A5_DISPCA_L, BK0_A6_DISPCA_H
 163   2                      
 164   2                      for (ucLoop = x; ucLoop<0xff; ucLoop++)
 165   2                      {
 166   3                          if (str[ucLoop]!=0xff)
 167   3                              mstWriteByte(BK0_A7_DISPCD, str[ucLoop]);
 168   3                          else
 169   3                              break;
 170   3                      }
 171   2                      
 172   2              }
 173   1      }
 174          
 175          void osdOSDPrintIcon(BYTE xPos, BYTE yPos, BYTE icon, BYTE FGC, BYTE BGC)
 176          {
 177   1              WORD uwAddress;
 178   1      
C51 COMPILER V7.50   OSDFUNC                                                               03/18/2008 22:29:10 PAGE 4   

 179   1              uwAddress=yPos*OSD_MAINMENU_WIDTH+xPos;
 180   1      
 181   1              osdOSDSetStringColor(FGC, BGC);
 182   1      
 183   1              mstWriteWord(BK0_A6_DISPCA_H, uwAddress);               // BK0_A5_DISPCA_L, BK0_A6_DISPCA_H
 184   1              mstWriteByte(BK0_A7_DISPCD, icon);
 185   1      
 186   1              mstWriteWord(BK0_A9_DISPAA_H, uwAddress);               // BK0_A8_DISPAA_L, BK0_A9_DISPAA_H
 187   1              mstWriteByte(BK0_AA_DISPAD, g_ucOsdFontColor);
 188   1              
 189   1      }
 190          
 191          #if 1
 192          void osdOSDPrintValue(BYTE xPos, BYTE yPos, SINT dt, BYTE FGC, BYTE BGC)
 193          {
 194   1              BYTE ucDat;
 195   1              WORD  i;
 196   1              bit fz;
 197   1        

⌨️ 快捷键说明

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