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

📄 teletext.lst

📁 此程序为twell8806驱动程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   TELETEXT                                                              08/20/2007 10:23:35 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TELETEXT
OBJECT MODULE PLACED IN TeleText.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TeleText.c COMPACT OPTIMIZE(9,SIZE)

line level    source

   1          //=============================================================================
   2          //                                                              Teletext 
   3          //=============================================================================
   4          
   5          #include "Config.h"
   6          #include "reg.h"
   7          #include "typedefs.h"
   8          #include "I2C.h"
   9          #include "main.h"
  10          #include "debug.h"
  11          #include "printf.h"
  12          #include "TeleText.h"
  13          #include "RegMap.h"
  14          
  15          #ifdef SUPPORT_TELETEXT
              
              static IDATA BYTE       TTToggle = 0x00;                // x0: display on       x1: display off
                                                                                                      // 0x: full mode        1x: FB mode
              
              static       bit        f_TeleTextOn = 0;               // 0:OFF  1:ON
              
              
              bit IsTeleTextOn(void)
              {
                      return f_TeleTextOn;
              }
              
              //=============================================================================
              //   Command
              //=============================================================================
              #if TELETEXTDEVICE == PHILIPS_TTX
              
              void TeleTextHPol(void)
              {
                      BYTE Vdata[4];
              
                      Vdata[0] = 0xb3;
                      Vdata[1] = 0xc1;
                      Vdata[2] = 0xfd;
                      Vdata[3] = 0x02;
              
                      WriteI2CnLong(TEXTAddress, Vdata, 4);  
              }
              
              void TeleTextVPol(void)
              {
                      BYTE Vdata[4];
              
                      Vdata[0] = 0xb3;
                      Vdata[1] = 0xc1;
                      Vdata[2] = 0xfe;
                      Vdata[3] = 0x01;
              
                      WriteI2CnLong(TEXTAddress, Vdata, 4);  
              }
C51 COMPILER V7.50   TELETEXT                                                              08/20/2007 10:23:35 PAGE 2   

              
              void TeleTextCancel(void)
              {
                      BYTE Vdata[1];
                      
                      TTToggle ^= 0x01;
              
                      if     ( TTToggle & 0x01 ) Vdata[0] = 0x27;
                      else if( TTToggle & 0x02 ) Vdata[0] = 0x3e;
                      else                       Vdata[0] = 0x3f; 
              
                      WriteI2CnLong(TEXTAddress, Vdata, 1); 
              
                      #ifdef DEBUG_TELETEXT
                      dPrintf("\r\nTeletext Cancel: Toggle : %2x",(WORD)TTToggle);
                      #endif
              }
              
              void TeleTextPos(BYTE Hpos, BYTE Vpos)
              {
                      BYTE Vdata[4];
              
                      Vdata[0] = 0x48;
                      Vdata[1] = 0x08;
                      Vdata[2] = Hpos;
                      Vdata[3] = Vpos;
              
                      WriteI2CnLong(TEXTAddress, Vdata, 4);  
              }
              
              void TeletextMix(void)
              {
                      BYTE Vdata[1];
              
                      Vdata[0] = 0x3e;
                              
                      WriteI2CnLong(TEXTAddress, Vdata, 1); 
              
              
              }
              
              void TeleTextONOFF(void)
              {
                      BYTE Vdata[1];
              
                if( !f_TeleTextOn ) 
                {
                  f_TeleTextOn = 1;           
              
                      SEL_MIX = 1;
              
                      WriteDecoder(INFORM,  ReadDecoder(INFORM)  | 0x01 );    // 02: xxxx xxx1 Select RGB1
                      WriteDecoder(ACNTL,   ReadDecoder(ACNTL)   & 0xfe );    // 06: xxxx xxx0 normal FB
              
                      WriteDecoder(SCbGAIN, ReadDecoder(SCbGAIN) | 0x80 );    // 3d: 1xxx xxxx RGB H Sharpness On
                      WriteDecoder(SCrGAIN, ReadDecoder(SCrGAIN) & 0x7f );    // 3d: 0xxx xxxx normal DAC H sync
                      WriteDecoder(RGBCONTROL, 0x00 );                                                // 36: 0000 0001 RGB ADC Power On, FB Gain:100%
                      WriteDecoder(RGBMISC, 0x05 );                                                   // 39: 0000 0101 Select RGB, FB control
                      
                      TTToggle ^= 0x02;
              
                      //if( TTToggle & 0x02 ) Vdata[0] = 0x3e;                // mix
C51 COMPILER V7.50   TELETEXT                                                              08/20/2007 10:23:35 PAGE 3   

                      //else   
                                      Vdata[0] = 0x3f;
                              
                      WriteI2CnLong(TEXTAddress, Vdata, 1); 
              
                }
                else // TTX OFF
                {
              
                      f_TeleTextOn = 0;       
                      
                      SEL_MIX = 0;
              
                      TTToggle ^= 0x02;
              
                      Vdata[0] = 0x03;
                      WriteI2CnLong(TEXTAddress, Vdata, 1);  
              
                      
                      switch( GetInputSelection() ) {
                      case SCART:
                      case COMPOSITE:
                      case SVIDEO:
                      case TV:
                              WriteDecoder(ACNTL,   ReadDecoder(ACNTL)   | 0x01 );    // 06: xxxx xxx1 pdwon FB
                              WriteDecoder(SCrGAIN, ReadDecoder(SCrGAIN) | 0x80 );    // 3d: 1xxx xxxx pdwon DAC H sync
                              WriteDecoder(RGBCONTROL, 0xe3 );                                                // 3f: 0000 0001 main mode
                              break;
              
                      case COMPONENT:
                              break;
                      
                      }
              
                }
                      //#ifdef DEBUG_TELETEXT
                      Printf("\r\nTeletext ON: Toggle : %2x",(WORD)TTToggle);
                      //#endif
              }
              
              /*void TeleTextOFF(void)
              {
                      BYTE Vdata[1];
              
                      f_TeleTextOn = 0;       
                      
                      SEL_MIX = 0;
              
                      TTToggle ^= 0x02;
              
                      Vdata[0] = 0x03;
                      WriteI2Cn(TEXTAddress, Vdata, 1);  
              
                      
                      switch( GetInputSelection() ) {
                      case COMPOSITE:
                      case SVIDEO:
                      case TV:
                              WriteDecoder(ACNTL,   ReadDecoder(ACNTL)   | 0x01 );    // 06: xxxx xxx1 pdwon FB
                              WriteDecoder(SCrGAIN, ReadDecoder(SCrGAIN) | 0x80 );    // 3d: 1xxx xxxx pdwon DAC H sync
                              WriteDecoder(RGBCONTROL, 0xe3 );                                                // 3f: 0000 0001 main mode
                              break;
C51 COMPILER V7.50   TELETEXT                                                              08/20/2007 10:23:35 PAGE 4   

              
                      case COMPONENT:
                              break;
                      
                      case SCART:
                              break;
                      }
              }
              */      
              void TeleTextRed(void)
              {
                      BYTE Vdata[1];
              
                      Vdata[0] = 0x20;
                      WriteI2CnLong(TEXTAddress, Vdata, 1);
              }
              
              void TeleTextGreen(void)
              {
                      BYTE Vdata[1];
              
                      Vdata[0] = 0x21;
                      WriteI2CnLong(TEXTAddress, Vdata, 1);
              }
              
              void TeleTextYellow(void)
              {
                      BYTE Vdata[1];
              
                      Vdata[0] = 0x22;
                      WriteI2CnLong(TEXTAddress, Vdata, 1);
              }
              
              void TeleTextCyan(void)
              {
                      BYTE Vdata[1];
              
                      Vdata[0] = 0x3d;
                      WriteI2CnLong(TEXTAddress, Vdata, 1);
              }
              
              void TeleTextHold(void)
              {
                      BYTE Vdata[1];
              
                      Vdata[0] = 0x25;
                      WriteI2CnLong(TEXTAddress, Vdata, 1);
              }
              /*
              void TeleTextTime(void)
              {
                      BYTE Vdata[1];
              
                      Vdata[0] = 0x07;
                      WriteI2CnLong(TEXTAddress, Vdata, 1);
              }
              */
              void TeleTextSize(void)
              {
                      BYTE Vdata[1];
              
                      Vdata[0] = 0x3a;
C51 COMPILER V7.50   TELETEXT                                                              08/20/2007 10:23:35 PAGE 5   

                      WriteI2CnLong(TEXTAddress, Vdata, 1);
              }
              
              void TeleTextIndex(void)
              {
                      BYTE Vdata[1];
              
                      Vdata[0] = 0x28;
                      WriteI2CnLong(TEXTAddress, Vdata, 1);
              }
              /*
              void TeleTextMode(void)
              {
                      BYTE Vdata[1];
              
                      Vdata[0] = 0x29;
                      WriteI2CnLong(TEXTAddress, Vdata, 1);
              }
              */
              void TeleTextPageUp(void)
              {

⌨️ 快捷键说明

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