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

📄 vp.lst

📁 Bitek 公司 bit1611b模拟屏驱动芯片外接MCU驱动DEMO源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   VP                                                                    02/05/2007 16:33:26 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE VP
OBJECT MODULE PLACED IN .\OBJ\VP.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE VP.C ROM(COMPACT) OPTIMIZE(9,SPEED) NOAREGS DEFINE(PROJECT=DMO04015800,MCU_
                    -CFG=BIT5101,VP_IF_CFG=VP_IF_BITEK) PRINT(.\LST\VP.lst) OBJECT(.\OBJ\VP.obj)

line level    source

   1          /* **********************************************************************
   2          
   3                   Copyright (c) 2002-2006 Beyond Innovation Technology Co., Ltd
   4          
   5                  All rights are reserved. Reproduction in whole or in parts is
   6              prohibited without the prior written consent of the copyright owner.
   7             ----------------------------------------------------------------------
   8          
   9              Module: VP.C - Video Processor.
  10          
  11              Purpose: Implementation of VP module.
  12          
  13              Version: 0.01                                   11:24AM  2005/11/17
  14          
  15              Compiler: Keil 8051 C Compiler v8.01
  16          
  17              Reference:
  18              [1] BIT1611B Data Sheet Version 1.0, 2005-11-10,
  19                  Beyond Innovation Technology
  20          
  21             ----------------------------------------------------------------------
  22              Modification:
  23          
  24              R0.01 11:24AM  2005/11/17 Jeffrey Chang
  25              Reason:
  26                  1. Original.
  27              Solution:
  28          
  29             ********************************************************************** */
  30          
  31          #define  _VP_C_
  32          
  33          
  34          /* ------------------------------------
  35              Header Files
  36             ------------------------------------ */
  37          #include "bitek.h"
  38          #include "led.h"
  39          #include "timer.h"
  40          #include "vp.h"
  41          #include "yuv.h"
  42          
  43          #if (PROJECT == DMO04041000)    ||  \
  44              (PROJECT == DMO04042500)    ||  \
  45              (PROJECT == DMO04052500)
                  #include "i2c.h"
              #endif
  48          
  49          #if (PROJECT == DMO04015800)
  50              #include "spi.h"
  51          #endif
  52          
  53          /* ------------------------------------
  54              Macro Definitions
C51 COMPILER V7.50   VP                                                                    02/05/2007 16:33:26 PAGE 2   

  55             ------------------------------------ */
  56          // in MS
  57          #define COLORSTD_STABLE_TIME        30
  58          
  59          // in MS
  60          #define COLORSTD_SETUP_TIME         320
  61          
  62          // For Loop Index
  63          #define COLORSTD_DETECT_TIME        255
  64          
  65          /* ------------------------------------
  66              Type Definitions
  67             ------------------------------------ */
  68          
  69          /* ------------------------------------
  70              Variables Definitions
  71             ------------------------------------ */
  72          
  73          
  74          /* ------------------------------------
  75              Function Prototypes
  76             ------------------------------------ */
  77          
  78          
  79          /* -------------------------------------------------------------------
  80              Name: VP_BlankColor -
  81              Purpose: To enable/disable FREE-RUN blank color feature.
  82              Passed:
  83                  BOOL   fOn      Enable (TRUE) or Disable (FALSE).
  84              Returns: None.
  85              Notes: [1]40
  86             ------------------------------------------------------------------- */
  87          void VP_BlankColor (BOOL fOn)
  88          {
  89   1          UB8     b40;
  90   1      
  91   1      
  92   1          b40 = BITEK_RxByte(VP_MAD, VP_040_TESTPAT_ATTR);
  93   1      
  94   1          if (fOn)
  95   1              b40 |= VP_MASK_FREERUN_EN;       // Free Run !
  96   1          else
  97   1              b40 &= (~VP_MASK_FREERUN_EN);
  98   1      
  99   1          BITEK_TxByte(VP_MAD, VP_040_TESTPAT_ATTR, b40);
 100   1      } /* VP_BlankColor */
 101          
 102          
 103          #if (VP_DISPLAYMODE)
              /* -------------------------------------------------------------------
                  Name: VP_DisplayMode (YUV_01_BIT1611B) -
                  Purpose: To set display mode.
                  Passed:
                      UB8 bDisplayMode    DISPLAY_MODE_BYPASS or DISPLAY_MODE_LINEAR
                  Returns: None.
                  Notes:
                 ------------------------------------------------------------------- */
              void VP_DisplayMode (UB8 bDisplayMode)
              {
                  // [V00041] Added by JC 05:17PM  2006/03/05
                  BITEK_TxByte(VP_MAD, VP_005_INT_ATTR, 0x20);
              
C51 COMPILER V7.50   VP                                                                    02/05/2007 16:33:26 PAGE 3   

                  bDisplayMode = bDisplayMode;
              
                  BITEK_TxByte(VP_MAD, VP_005_INT_ATTR, 0x30);
              } /* VP_DisplayMode */
              #endif
 122          
 123          
 124          /* -------------------------------------------------------------------
 125              Name: VP_HardwareReset -
 126              Purpose: To Reset VP hardware.
 127              Passed:
 128              Returns:
 129              Notes: [1]17
 130             ------------------------------------------------------------------- */
 131          void VP_HardwareReset (void)
 132          {
 133   1          VP_RESET_OFF;
 134   1          TIMER_DelayMS(50);
 135   1      
 136   1          VP_RESET_ON;                // Reset !
 137   1          TIMER_DelayMS(100);         // At least 4 XCLK cycles !
 138   1      
 139   1          VP_RESET_OFF;
 140   1          TIMER_DelayMS(50);
 141   1      } /* VP_HardwareReset */
 142          
 143          
 144          
 145          /* -------------------------------------------------------------------
 146              Name: VP_Init -
 147              Purpose: To initiate VP module.
 148              Passed: None.
 149              Returns: None.
 150              Notes:
 151             ------------------------------------------------------------------- */
 152          void VP_Init (void)
 153          {
 154   1          switch (tsEYD.bYUV_ID)
 155   1          {
 156   2              case YUV_ID_CVBS_11:
 157   2              case YUV_ID_CVBS_21:
 158   2              case YUV_ID_YC_Y12C22:
 159   2                  // Defaul Values !
 160   2                  BITEK_TxBurst(VP_MAD, VP_007_PORT_ATTR, sizeof(abVP_007_0A7_DEFAULT), abVP_007_0A7_DEFAULT);
 161   2      
 162   2                  break;
 163   2          }
 164   1      
 165   1      
 166   1      
 167   1          #ifdef NOT_JUNK
              
                  /* ....................................
                      [1]73 Gamma LUT
                     .................................... */
                  {
                      UB8 bA2;
              
              
                      bA2 = BITEK_RxByte(VP_MAD, VP_0A2_GAMMA_ATTR) & ~VP_MASK_GAMMA_LUT_EN;
              
                      // To disable RGB Gamma Tables
C51 COMPILER V7.50   VP                                                                    02/05/2007 16:33:26 PAGE 4   

                      BITEK_TxByte(VP_MAD, VP_0A2_GAMMA_ATTR, bA2);
              
                      // To set RGB Gamma Tables
                      BITEK_TxBurst(VP_MAD, VP_0200_02FF_GAMMA_LUT_R + 0  ,  sizeof(abGammaR)/2, &abGammaR[   0 ]);
                      BITEK_TxBurst(VP_MAD, VP_0200_02FF_GAMMA_LUT_R + 128,  sizeof(abGammaR)/2, &abGammaR[ 128 ]);
                      BITEK_TxBurst(VP_MAD, VP_0300_03FF_GAMMA_LUT_G + 0  ,  sizeof(abGammaR)/2, &abGammaG[   0 ]);
                      BITEK_TxBurst(VP_MAD, VP_0300_03FF_GAMMA_LUT_G + 128,  sizeof(abGammaR)/2, &abGammaG[ 128 ]);
                      BITEK_TxBurst(VP_MAD, VP_0400_04FF_GAMMA_LUT_B + 0  ,  sizeof(abGammaR)/2, &abGammaB[   0 ]);
                      BITEK_TxBurst(VP_MAD, VP_0400_04FF_GAMMA_LUT_B + 128,  sizeof(abGammaR)/2, &abGammaB[ 128 ]);
              
                      // To enable RGB Gamma Tables
                      BITEK_TxByte(VP_MAD, VP_0A2_GAMMA_ATTR, (bA2 | VP_MASK_GAMMA_LUT_EN));
                  }
              
                  /* ....................................
                      [1]71 Gamma Adjust-Curve
                     .................................... */
                  #endif
 197   1      
 198   1      
 199   1          /* ....................................
 200   1              Video Processor
 201   1             .................................... */
 202   1          VP_SetBlackLevel(tsEGD.bBlackLevel,
 203   1                           tsEGD.bWhiteSlope,
 204   1                           tsEGD.bBlackSlope,
 205   1                           tsEGD.bWhiteStart,
 206   1                           tsEGD.bBlackStart
 207   1                          );
 208   1      
 209   1          VP_SetBrightness(tsEGD.bBrightness);
 210   1          VP_SetContrast(tsEGD.bContrast);
 211   1      
 212   1          // To adjust VP
 213   1          VP_SetImageFilter(tsEGD.bImage_Filter);
 214   1      
 215   1          // To restore VP TCON mode !
 216   1          VP_SetTCON_Mode(tsEGD.bTCON_Mode);
 217   1      } /* VP_Init */
 218          
 219          
 220          #if (VP_INT_CFG != EXT_INT_NONE)
              /* -------------------------------------------------------------------
                  Name: VP_ISR -
                  Purpose: .
                  Passed: None
                  Returns: None.
                  Notes:
                  Reference: [2]19
                 ------------------------------------------------------------------- */
              void VP_ISR (void) interrupt VP_INT     using VP_USING
              {
                  fVP_IntReady = TRUE;
              } /* VP_ISR */
              #endif
 234          
 235          
 236          #if (VP_SET_BLACKLEVEL)
 237          /* -------------------------------------------------------------------
 238              Name: VP_SetBlackLevel -
 239              Purpose: This function sets the VP BlackLevel.
 240              Passed:
C51 COMPILER V7.50   VP                                                                    02/05/2007 16:33:26 PAGE 5   

 241                  UB8 bBlackLevel
 242              Returns: None.
 243              Notes: [1]65
 244             ------------------------------------------------------------------- */
 245          void VP_SetBlackLevel (
 246          UB8 bBlackLevel,
 247          UB8 bWhiteSlope,
 248          UB8 bBlackSlope,
 249          UB8 bWhiteStart,
 250          UB8 bBlackStart
 251          )
 252          {
 253   1          BITEK_TxByte(VP_MAD, VP_082_BLACK_LEVEL, bBlackLevel ^ 0x80);
 254   1          BITEK_TxByte(VP_MAD, VP_083_WHITE_SLOPE, bWhiteSlope);
 255   1          BITEK_TxByte(VP_MAD, VP_084_BLACK_SLOPE, bBlackSlope);
 256   1          BITEK_TxByte(VP_MAD, VP_085_WHITE_START, bWhiteStart);
 257   1          BITEK_TxByte(VP_MAD, VP_086_BLACK_START, bBlackStart);
 258   1      } // VP_SetBlackLevel
 259          #endif
 260          
 261          
 262          
 263          
 264          #if (VP_SET_COLORSTANDARD)
              /* -------------------------------------------------------------------
                  Name: VP_SetColorStandard - (YUV_01_BIT1611B)
                  Purpose: To adjust Video Processor register settings according to
                      Color Standard mode.
                  Passed:
                      UB8 bMode   YUV_CS_NTSC         or
                                  YUV_CS_PAL_BGDHI    or
                                  YUV_CS_SECAM_L
                  Returns:
                  Notes:
                 ------------------------------------------------------------------- */
              void VP_SetColorStandard (UB8 bMode)
              {
                  //UB8     b615;
              
              
                  return;
                  /////////////////////////////////////////////
              
                  switch (tsEYD.bYUV_ID)
                  {
                      case YUV_ID_CVBS_11:
                      case YUV_ID_CVBS_21:
                      case YUV_ID_YC_Y12C22:
                      case YUV_ID_YC_Y11C21:
                          switch (bMode)
                          {
                              // 50Hz
                              case YUV_CS_PAL:
                              case YUV_CS_PAL_N:
                              case YUV_CS_SECAM:
                              case YUV_CS_NTSC_443_50:
                                  break;
              
                              // 60Hz
                              case YUV_CS_NTSC:
                              case YUV_CS_PAL_M:
                              case YUV_CS_NTSC_M:
C51 COMPILER V7.50   VP                                                                    02/05/2007 16:33:26 PAGE 6   

                              case YUV_CS_NTSC_443_60:
                              case YUV_CS_PAL_60:
                              default:
                                  break;
                          } // switch bMode
              
                          //BITEK_TxByte(YUV_MAD, VP_615_CHROMA_ATTR4, b615);
              
                          /* ....................................
                              Video Decoder
                             .................................... */
                          YUV_SetBrightness(tsEYD.bBrightness);
                          YUV_SetContrast(tsEYD.bContrast);
                          YUV_SetSaturation(tsEYD.bSaturation);
                          YUV_SetHue(tsEYD.bHue);
                          break;
                  } /* tsEYD.bYUV_ID */
              
                  /* ....................................
                      Video Decoder
                     .................................... */
                  YUV_SetBrightness(tsEYD.bBrightness);

⌨️ 快捷键说明

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