?? teletext.lst
字號:
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 + -