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

📄 userprefdef.h

📁 主要用于液晶电视解码,内置51单片机,全部代码用C编写,编译环境为KEILC
💻 H
字号:
#include <stddef.h>

#define TV_EXTR_CONTRAST    0x10

typedef struct
{
  BYTE Brightness; // 1
  BYTE Contrast;//8
  BYTE AdcRedGain; // 2
  BYTE AdcGreenGain; //3
  BYTE AdcBlueGain; //4
  BYTE AdcRedOffset;// 5
  BYTE AdcGreenOffset;//6
  BYTE AdcBlueOffset;//7
  BYTE SavedModeIndex;
  BYTE Checksum;
} PCSettingType;

typedef struct
{
  BYTE ucVersion;
  BYTE MonitorFlag; // 0
  BYTE Language;//14
  BYTE OsdHStart;//15
  BYTE OsdVStart;//16
  BYTE OsdTime;//17
  BYTE InputType;
  BYTE DOWN;
  BYTE VideoBrightness;
  BYTE VideoContrast;
  BYTE VideoSaturation;
  BYTE VideoHue;
  BYTE VideoSharpness;//13
  BYTE VideoColorSys;
  BYTE Scaling;
  BYTE TunerAGC;
  BYTE volume;
  BYTE MuteStatus; // 1:mute
  BYTE videoAGC;
  BYTE VcomDC;
  BYTE VcomAC;
  BYTE Checksum;
}VideoSettingType ;

typedef struct
{ WORD HTotal;
  WORD HStart;
  WORD VStart;
  WORD AutoHStart;
  WORD AutoVStart;
  BYTE Phase;
  BYTE AutoTimes;
  BYTE checksum;
} ModeSettingType;

typedef struct
{ WORD HorFreq;
  WORD VerFreq;
  BYTE Flags;
} ModeInfoType;

typedef struct _TVChSettingType
{
    BYTE ucCurChannelNO;    // Current channel NO.
    BYTE ucPreChannelNO;    // Previos channel NO.
    BYTE TvCurChannelMisc;
#if TV_SYSTEM==TV_NTSC
    BYTE ucTVSource;	// THE LAST USED TV SOURCE
    BYTE ucATVChannelNO;   // THE LAST ATV channel NO.
    BYTE ucCTVChannelNO;   // THE LAST CTV channel NO.
#endif
}TVChSettingType;

typedef enum
{
	CS_AUTO,
	CS_NTSC,
	CS_PAL,
	CS_COLORSYS_NUMS
} EnuTVColorSystem;

typedef enum
{
	Scaling_Full,
	Scaling_4_3,
	Scaling_NUMS
} ScalingType;

typedef struct _NonLinearCurveType
{
    BYTE X0;
    BYTE X1;
    BYTE X2;
    BYTE X3;
    BYTE X4;
}NonLinearCurveType;

typedef struct _StuChannelData
{
    WORD wFreq;
    BYTE ucChannelMisc;
} StuChannelData;

typedef enum
{
    TV_SOUND_BG,
    TV_SOUND_DK,
    TV_SOUND_I,
    TV_SOUND_M,
    TV_SOUND_N,
    TV_SOUND_L,
    TV_SOUND_NUMS
} EnuTVSoundSystem;


typedef enum
{
    CHROMA_AUTO,
    CHROMA_PAL,
    CHROMA_NTSC,
    CHROMA_SECAM,
    CHROMA_NUMS
} EnuCChromaSystem;

typedef enum
{
    MARIA1=11,
    MARIA2=21,
    MARIA2_B=22,
    MARIA2_D=24,
    MARIA2_E=25,
    MARIA2_F=25,
    MARIA2_G=26,
    MARIA3=31,
    MARIA_Type_NUMS
} MARIAScalerType;

typedef struct
{
    BYTE    VideoHStart; // H capture start
    BYTE    VideoVStart; // V capture start
    WORD    HRange; // H capture range
    WORD    VRange; // V capture range
}_CaptureVideoWinType;


typedef struct
{
    BYTE    SVideoHStartOffset; // H capture start
    BYTE    SVideoVStartOffset; // V capture start
}_CaptureSvideoWinOffsetType;

#define CurrentChannelVsValue StuChannelData.wFreq
#define CurrentChannelInfo    StuChannelData.ucChannelMisc

//TVChannelInfo.Info============================================================
#define SoundSysMask	 	(_BIT2|_BIT1|_BIT0)
#define DoAFCFlag			_BIT3
#define ColorSysMask		(_BIT4|_BIT5|_BIT6)

#ifdef Multi_language
#define ModeCSValue		0xA0
#define VideoVersion		0x50
#define BoardVersion		0xA0
#else
#define ModeCSValue		0xAA
#define VideoVersion		0xF0
#define BoardVersion		0x55
#endif
//==========================================================================
#define NumberOfMode		30
#define UserModeNumber		5
#define NVRamAddress_Base	0

#define PCSettingSize		sizeof(PCSettingType)
#define VideoSettingSize	sizeof(VideoSettingType)

#define ModeSettingSize		sizeof(ModeSettingType)
#define ModeInfoSize		sizeof(ModeInfoType)
#define CheckSumSize        1

#define ChannelNumberInfoSize	sizeof(TVChSettingType)

#define SIZE_TV_CHANNEL_INFO sizeof(StuChannelData)

typedef enum
{
	BoardChkSumAddr=NVRamAddress_Base,
   	VideoSettingAddr=NVRamAddress_Base+0x10,
	PCSettingAddr=VideoSettingAddr+VideoSettingSize,
  	ModeSettingAddr=PCSettingAddr+PCSettingSize,
  	UserModeSettingAddr=ModeSettingAddr+ModeSettingSize*NumberOfMode,
  	ModeInfoAddr=UserModeSettingAddr+ModeSettingSize*UserModeNumber,
  	ChannelNumberInfoAddr=ModeInfoAddr+ModeInfoSize*UserModeNumber,
	TV_SKIP_INFOAddr=ChannelNumberInfoAddr+ChannelNumberInfoSize,

	#if TV_SYSTEM==TV_NTSC
	CATV_SKIP_INFOAddr=TV_SKIP_INFOAddr+13,//(BYTE)((TV_MAX_CHANNEL_NUM+1)/8)+1,
	#endif

  	ChannelAddr=0x400,//ChannelNumberInfoAddr+ChannelNumberInfoSize,
} NVRamAddress;

#define adrMonitorSetting_Base		NVRamAddress_Base
#define adrModeSetting_Base			NVRamAddress_Base+PCSettingSize

#define nvrMonitorAddr(member)		PCSettingAddr+offsetof(PCSettingType, member)
#define nvrVideoAddr(member)		VideoSettingAddr+offsetof(VideoSettingType, member)

#define nvrModeSettingBaseAddr		ModeSettingAddr+(WORD)NumberOfMode*ModeSettingSize*(UserModeFlag>>6)
#define nvrModeBaseAddr(modeIndex)	nvrModeSettingBaseAddr+(WORD)modeIndex*ModeSettingSize

#define nvrModeAddr(member)		nvrModeBaseAddr(g_ucSaveIndex)+offsetof(ModeSettingType, member)

#define nvrModeInfoAddr(modeIndex)	ModeInfoAddr+(WORD)modeIndex*ModeInfoSize

#define	nvrTVChanneSkipInfoAddr(ChannelIndex) TV_SKIP_INFOAddr+(WORD)ChannelIndex/8

#define nvrChannelNumberInfoAddr(member)	ChannelNumberInfoAddr+offsetof(TVChSettingType, member)
#if TV_SYSTEM==TV_NTSC
#define	nvrCATVChanneSkipInfoAddr(ChannelIndex) CATV_SKIP_INFOAddr+(WORD)ChannelIndex/8
#define	nvrChanneAddr(ChannelIndex) (g_TVChSetting.ucTVSource==NTSC_ATV)?(ChannelAddr+(WORD)ChannelIndex*SIZE_TV_CHANNEL_INFO):(ChannelAddr+((WORD)ChannelIndex+70)*SIZE_TV_CHANNEL_INFO)
#else
#define	nvrChanneAddr(ChannelIndex) ChannelAddr+(WORD)ChannelIndex*SIZE_TV_CHANNEL_INFO
#endif

⌨️ 快捷键说明

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