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

📄 mode.c

📁 NT68617源程序代码集合
💻 C
📖 第 1 页 / 共 3 页
字号:
/*
********************************************************************************
*
*	                                LCD控制程序
*
*	     这个头文件定义了系统所能支持的显示模式,并可以设定要支持的模式
*
*	文件名	: MODE.H
*	设计者	: Terry
********************************************************************************
*                                   功 能 描 述
*
*		1、定义显示模式表格搜索时的误差门限
*		2、定义系统实际需要去支持的显示模式
*		3、系统全部能支持的显示模式表格
*		4、有几组显示模式的同步信号参数是接近的,因此不同时支持这些显示模式
*	这在应用上要注意,那么这些模式分别是:
*		(1) 848 X 480  		640 X 480
*		(2) 1280 X 768  	1360 X 768
*		(3) 1680 X 1050		1400 X 1050
*		(4) 1920 X 1200		1600 X 1200
*
*		相冲突的模式是有规律的,一组是4:3的,另一组是16:9的
*
*		5、为了能适应更多的显示模式,必须增加对同步极性的判别
*		6、不要改动以下显示模式数据的排列顺序
********************************************************************************
*/
#include "global.h"
#if EN_85HZ_FRAME_RATE
#include "mode_85.h"
#else
#include "mode.h"
#endif


/********************************** End ***************************************/


//	这个表定义了显示模式的所有相关参数

//	这个数据表存放的项目顺序, 水平计数值, 垂直计数值, 垂直极性+水平极性, 
//		水平分辨率,垂直分辨率,水平所有像素,垂直所有像素,分辨率字符串

//	要注意的是极性一项, 水平极性在第1位, 垂直极性在第0位. 1表示正极性

/*
================================================================================
=	这个表格中包含了水平和垂直的位置参数,这些参数都是在MIK的信号基础上调出来
=	的,一旦信号源更换,就会有轻微的差别。
=
=	另外一个需要特别注意的就是,水平位置和寄存器0x0D5的bit3有很大的关系,对于这
=	个位目前的设置规律是,逐行信号设置为0,隔行信号设置为1,一旦统一为0,有些
=	隔行的显示模式AUTO调整不成功,而且0x199的bit0和bit1的设置,也是和0x0D5的bit3
=	相关联的。
================================================================================
*/
//第七位为1时,不检测极性;为0时,检测极性 //08-05-23
DPMODE code ModeAttr[]={
{HSCNT(15.625),VSCNT(50.000),0x80,720,288,864,0x3F,0x13,
HsErr(HSCNT(15.625)), VsErr(VSCNT(50.000))},			// 00

//{HSCNT(15.625),VSCNT(60.000),0x80,720,240,858,0x33,0x0F,
//HsErr(HSCNT(15.625)), VsErr(VSCNT(60.000))},		// 01
{HSCNT(15.734),VSCNT(60.000),0x80,720,240,858,0x33,0x0F,
HsErr(HSCNT(15.734)), VsErr(VSCNT(60.000))},		// 01

/*--------------------- 640X350 -------------------------*/
//	31.469kHz/50.030Hz,+/-,		640X350/50Hz,	25.175MHz
#if EN_M640X350_50
{HSCNT(31.469),VSCNT(50.030),0x02,640,350,800,0xA8,0x1B,
HsErr(HSCNT(31.469)), VsErr(VSCNT(50.030))},		// 00
#endif

//	31.469kHz/59.941Hz,+/-,		640X350/60Hz,	25.175MHz
#if EN_M640X350_60
{HSCNT(31.469),VSCNT(59.941),0x02,640,350,800,0x9A,0x61,
HsErr(HSCNT(31.469)), VsErr(VSCNT(59.941))},		// 01
#endif

//	31.469kHz/70.087Hz,+/-,		640X350/70Hz,	25.175MHz
#if EN_M640X350_70
{HSCNT(31.469),VSCNT(70.087),0x02,640,350,800,0x89,0x3B,
HsErr(HSCNT(31.469)), VsErr(VSCNT(70.087))},		// 02
#endif

//	37.861kHz/85.080Hz,+/-,		640X350/85Hz,	31.500MHz
#if EN_M640X350_85
{HSCNT(37.861),VSCNT(85.080),0x02,640,350,832,0x98,0x3C,
HsErr(HSCNT(31.469)), VsErr(VSCNT(70.087))},		// 03
#endif


/*--------------------- 640X400 -------------------------*/
//	31.469kHz/50.030Hz,-/+,		640X400/50Hz,	25.175MHz
#if EN_M640X400_50
{HSCNT(31.469),VSCNT(50.030),0x01,640,400,800,0xA8,0x1B,
HsErr(HSCNT(31.469)), VsErr(VSCNT(50.030))},		// 04
#endif

//	31.469kHz/59.941Hz,-/+,		640X400/60Hz,	25.175MHz
#if EN_M640X400_60
{HSCNT(31.469),VSCNT(59.941),0x02,640,400,784,0x89,0x48,
HsErr(HSCNT(31.469)), VsErr(VSCNT(59.941))},		// 05
#endif

//	31.469kHz/70.087Hz,-/+,		640X400/70Hz,	25.175MHz
#if EN_M640X400_70
{HSCNT(31.469),VSCNT(70.087),0x02,640,400,800,0x89,0x22,
HsErr(HSCNT(31.469)), VsErr(VSCNT(70.087))},		// 06
#endif

//	37.861kHz/85.080Hz,-/+,		640X400/85Hz,	35.500MHz
#if EN_M640X400_85
{HSCNT(37.861),VSCNT(85.080),0x01,640,400,832,0x98,0x29,
HsErr(HSCNT(37.861)), VsErr(VSCNT(85.080))},		// 07
#endif


/*--------------------- 720X350 -------------------------*/
//	31.469kHz/50.030Hz,+/-,		720X350/50Hz,	28.322MHz
//	31.469kHz/70.087Hz,-/+,		640X400/70Hz,	25.175MHz
#if EN_M720X350_50
{HSCNT(31.469),VSCNT(50.030),0x02,720,350,900,0xA8,0x1B,
HsErr(HSCNT(31.469)), VsErr(VSCNT(50.030))},		// 08
#endif

//	31.469kHz/59.941Hz,+/-,		720X350/60Hz,	28.322MHz
#if EN_M720X350_60
{HSCNT(31.469),VSCNT(59.941),0x02,720,350,900,0x9B,0x61,
HsErr(HSCNT(31.469)), VsErr(VSCNT(59.941))},		// 09
#endif

//	31.469kHz/70.087Hz,+/-,		720X350/70Hz,	28.322MHz
#if EN_M720X350_70
{HSCNT(31.469),VSCNT(70.087),0x02,720,350,900,0x9B,0x3D,
HsErr(HSCNT(31.469)), VsErr(VSCNT(70.087))},		// 10
#endif

//	37.861kHz/85.080Hz,+/-,		720X350/85Hz,	35.500MHz
#if EN_M720X350_85
{HSCNT(37.861),VSCNT(85.080),0x02,720,350,936,0xAC,0x3C,
HsErr(HSCNT(37.861)), VsErr(VSCNT(85.080))},		// 11
#endif


/*--------------------- 720X400 -------------------------*/
//	31.469kHz/50.030Hz,-/+,		720X400/50Hz,	28.322MHz
#if EN_M720X400_50
{HSCNT(31.469),VSCNT(50.030),0x01,720,400,900,0xA8,0x1B,
HsErr(HSCNT(31.469)), VsErr(VSCNT(50.030))},		// 12
#endif

//	31.469kHz/59.941Hz,-/+,		720X400/60Hz,	28.322MHz
#if EN_M720X400_60
{HSCNT(31.469),VSCNT(59.941),0x01,720,400,900,0x9A,0x48,
HsErr(HSCNT(31.469)), VsErr(VSCNT(59.941))},		// 13
#endif

//	31.469kHz/70.087Hz,-/+,		720X400/70Hz,	28.322MHz
#if EN_M720X400_70
{HSCNT(31.469),VSCNT(70.087),0x01,720,400,900,0x9C,0x21,
HsErr(HSCNT(31.469)), VsErr(VSCNT(70.087))},		// 14
#endif

//	37.861kHz/85.080Hz,-/+,		720X400/85Hz,	31.500MHz
#if EN_M720X400_85
{HSCNT(37.861),VSCNT(85.080),0x01,720,400,936,0xAC,0x2A,
HsErr(HSCNT(37.861)), VsErr(VSCNT(85.080))},		// 15
#endif


/*--------------------- 720X480 -------------------------*/
//	29.820kHz/60.000Hz,-/+,		720X480/60Hz,	26.719MHz
#if EN_M720X480_60		//chen 08-05-24
{HSCNT(29.820),VSCNT(60.000),0x01,720,480,896,DEF_MODEHPOS,DEF_MODEVPOS,
HsErr(HSCNT(29.820)), VsErr(VSCNT(60.000))},		// 12
#endif


/*--------------------- 720X576 -------------------------*/
//	35.820kHz/60.000Hz,-/+,		720X576/60Hz,	32.668MHz
#if EN_M720X576_60		//chen 08-05-24
#if USE_MODE_GLS
{HSCNT(35.820),VSCNT(60.000),0x01,720,540,912,DEF_MODEHPOS,DEF_MODEVPOS,
HsErr(HSCNT(35.820)), VsErr(VSCNT(60.000))},		// 12
#else
{HSCNT(35.820),VSCNT(60.000),0x01,720,576,912,DEF_MODEHPOS,DEF_MODEVPOS,
HsErr(HSCNT(35.820)), VsErr(VSCNT(60.000))},		// 12
#endif
#endif


#if USE_MODE_GLS
/*--------------------- 848X480 -------------------------*/
#if EN_M800X480_60
{HSCNT(30.300),VSCNT(60.600),0x03,800,480,1056,0xD8,0x1C,
HsErr(HSCNT(30.300)), VsErr(VSCNT(60.600))},
#endif
#endif


/*--------------------- 848X480 -------------------------*/
// 60Hz刷新率模式的数据是根据VESA的标准校对的,其余模式没有处理
//	24.621kHz/49.540Hz,-/+,		848X480/50Hz,	26.000MHz
#if EN_M848X480_50
{HSCNT(24.621),VSCNT(49.540),0x01,848,480,1040,0xA8,0x1B,
HsErr(HSCNT(24.621)), VsErr(VSCNT(49.540))},
#endif

//	31.020kHz/60.000Hz,+/+,		848X480/60Hz,	31.500MHz
#if EN_M848X480_60
#if USE_MODE_GLS
{HSCNT(31.020),VSCNT(60.000),0x00,848,480,1056,0xD8,0x1C,
HsErr(HSCNT(31.020)), VsErr(VSCNT(60.000))},
#else
{HSCNT(31.020),VSCNT(60.000),0x03,848,480,1056,0xD8,0x1C,
HsErr(HSCNT(31.020)), VsErr(VSCNT(60.000))},
#endif
#endif

//	35.000kHz/70.000Hz,+/-,		848X480/70Hz,	37.520MHz
//与EN_M640X480_70很接近,无法区分,只能取舍 //chen 08-05-24
#if 0//EN_M848X480_70
{HSCNT(35.000),VSCNT(70.000),0x01,848,480,1072,0xA8,0x1B,
HsErr(HSCNT(35.000)), VsErr(VSCNT(70.000))},		// 18
#endif

//	36.072kHz/72.000,+/-,		848X480/72Hz,	39.246MHz
#if EN_M848X480_72 //chen 08-05-24
{HSCNT(36.072),VSCNT(72.000),0x01,848,480,1088,DEF_MODEHPOS,DEF_MODEVPOS,
HsErr(HSCNT(36.072)), VsErr(VSCNT(72.000))},		// 18
#endif

//	37.684kHz/74.769Hz,-/+,		848X480/75Hz,	41.000MHz
#if EN_M848X480_75
{HSCNT(37.684),VSCNT(74.769),0x01,848,480,1088,0xA8,0x1B,
HsErr(HSCNT(37.684)), VsErr(VSCNT(74.769))},
#endif


#if USE_MODE_GLS
#if EN_M852X480_60
{HSCNT(31.020),VSCNT(63.000),0x01,852,480,1100,0xD8,0x1C,
HsErr(HSCNT(31.020)), VsErr(VSCNT(63.000))},
#endif
#endif


#if USE_MODE_GLS
/*--------------------- 960X600 -------------------------*/
//	37.320kHz/60.000Hz,-/-,		960X600/60Hz,	45.978MHz
#if EN_M960X600_60
{HSCNT(37.320),VSCNT(60.000),0x03,960,600,1232,DEF_MODEHPOS,DEF_MODEVPOS,
HsErr(HSCNT(37.320)), VsErr(VSCNT(60.000))},		// 32
#endif

//	43.750kHz/70.000Hz,-/-,		960X600/70Hz,	54.600MHz
//与EN_M800X600_70很接近,无法区分,只能取舍 //chen 08-05-24
#if 0//EN_M960X600_70
{HSCNT(43.750),VSCNT(70.000),0x01,960,600,1248,DEF_MODEHPOS,DEF_MODEVPOS,
HsErr(HSCNT(43.750)), VsErr(VSCNT(70.000))},		// 32
#endif

//	45.072kHz/72.000Hz,-/-,		960X600/72Hz,	56.250MHz
#if EN_M960X600_72
{HSCNT(45.072),VSCNT(72.000),0x01,960,600,1248,DEF_MODEHPOS,DEF_MODEVPOS,
HsErr(HSCNT(45.072)), VsErr(VSCNT(72.000))},		// 32
#endif

//	47.025kHz/75.000Hz,-/-,		960X600/75Hz,	59.440MHz
#if EN_M960X600_75
{HSCNT(47.025),VSCNT(75.000),0x01,960,600,1264,DEF_MODEHPOS,DEF_MODEVPOS,
HsErr(HSCNT(47.025)), VsErr(VSCNT(75.000))},		// 32
#endif
#endif

#if USE_MODE_GLS
/*--------------------- 1024X640 -------------------------*/
//	39.780kHz/60.000Hz,-/-,		960X600/60Hz,	52.828MHz
#if EN_M1024X640_60
{HSCNT(39.780),VSCNT(60.000),0x00,1024,640,1328,DEF_MODEHPOS,DEF_MODEVPOS,
HsErr(HSCNT(39.780)), VsErr(VSCNT(60.000))},		// 32
#endif
#endif

#if USE_MODE_GLS
/*--------------------- 1024X576 -------------------------*/
//	45.150kHz/75.000Hz,-/-,		1024X576/60Hz,	60.682MHz
#if EN_M1024X576_75
{HSCNT(45.150),VSCNT(75.000),0x01,1024,576,1344,DEF_MODEHPOS,DEF_MODEVPOS,
HsErr(HSCNT(45.150)), VsErr(VSCNT(75.000))},		// 32
#endif
#endif

/*--------------------- 640X480 -------------------------*/
//	31.469kHz/50.030Hz,-/-,		640X480/50Hz,	25.175MHz
#if EN_M640X480_50
{HSCNT(31.469),VSCNT(50.030),0x00,640,480,800,0xA8,0x1B,
HsErr(HSCNT(31.469)), VsErr(VSCNT(50.030))},		// 16
#endif

//	31.469kHz/59.941Hz,-/-,		640X480/60Hz,	25.175MHz
#if EN_M640X480_60
{HSCNT(31.469),VSCNT(59.941),0x80,640,480,800,0x89,0x20,
HsErr(HSCNT(31.469)), VsErr(VSCNT(59.941))},		// 17
#endif

//	35.000kHz/66.667Hz,+/-,		640X480/67Hz,	30.240MHz
#if EN_M640X480_67
{HSCNT(35.000),VSCNT(66.667),0x82,640,480,864,0x98,0x27,
HsErr(HSCNT(35.000)), VsErr(VSCNT(66.667))},		// 18
#endif

//	35.000kHz/70.000Hz,+/-,		640X480/70Hz,	30.240MHz
#if EN_M640X480_70
{HSCNT(35.000),VSCNT(70.120),0x82,640,480,864,0xA8,0x1B,
HsErr(HSCNT(35.000)), VsErr(VSCNT(70.120))},		// 18
#endif

⌨️ 快捷键说明

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