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

📄 7-1.c

📁 TI公司c6000系列 dsp 的案例源代码
💻 C
字号:
unsigned char LUT8[256*3] =
{
/* 主次色 */
0x00, 0x00, 0x00,  0x00, 0x00, 0xA0,  0x00, 0xA0, 0x00,  0x00, 0xA0, 0xA0,  
0xA0, 0x00, 0x00,  0xA0, 0x00, 0xA0,  0xA0, 0xA0, 0x00,  0xA0, 0xA0, 0xA0,  
0x50, 0x50, 0x50,  0x00, 0x00, 0xF0,  0x00, 0xF0, 0x00,  0x00, 0xF0, 0xF0,  
0xF0, 0x00, 0x00,  0xF0, 0x00, 0xF0,  0xF0, 0xF0, 0x00,  0xF0, 0xF0, 0xF0,  
/* 灰度 */
0x00, 0x00, 0x00,  0x10, 0x10, 0x10,  0x20, 0x20, 0x20,  0x30, 0x30, 0x30,  
0x40, 0x40, 0x40,  0x50, 0x50, 0x50,  0x60, 0x60, 0x60,  0x70, 0x70, 0x70,  
0x80, 0x80, 0x80,  0x90, 0x90, 0x90,  0xA0, 0xA0, 0xA0,  0xB0, 0xB0, 0xB0,  
0xC0, 0xC0, 0xC0,  0xD0, 0xD0, 0xD0,  0xE0, 0xE0, 0xE0,  0xF0, 0xF0, 0xF0,  
/* 黑色到红色*/
0x00, 0x00, 0x00,  0x10, 0x00, 0x00,  0x20, 0x00, 0x00,  0x30, 0x00, 0x00,  
0x40, 0x00, 0x00,  0x50, 0x00, 0x00,  0x60, 0x00, 0x00,  0x70, 0x00, 0x00,  
0x80, 0x00, 0x00,  0x90, 0x00, 0x00,  0xA0, 0x00, 0x00,  0xB0, 0x00, 0x00,  
0xC0, 0x00, 0x00,  0xD0, 0x00, 0x00,  0xE0, 0x00, 0x00,  0xF0, 0x00, 0x00,  
/*黑色到绿色*/
0x00, 0x00, 0x00,  0x00, 0x10, 0x00,  0x00, 0x20, 0x00,  0x00, 0x30, 0x00,  
0x00, 0x40, 0x00,  0x00, 0x50, 0x00,  0x00, 0x60, 0x00,  0x00, 0x70, 0x00,  
0x00, 0x80, 0x00,  0x00, 0x90, 0x00,  0x00, 0xA0, 0x00,  0x00, 0xB0, 0x00,  
0x00, 0xC0, 0x00,  0x00, 0xD0, 0x00,  0x00, 0xE0, 0x00,  0x00, 0xF0, 0x00,  
/*黑色到蓝色*/
0x00, 0x00, 0x00,  0x00, 0x00, 0x10,  0x00, 0x00, 0x20,  0x00, 0x00, 0x30,  
0x00, 0x00, 0x40,  0x00, 0x00, 0x50,  0x00, 0x00, 0x60,  0x00, 0x00, 0x70,  
0x00, 0x00, 0x80,  0x00, 0x00, 0x90,  0x00, 0x00, 0xA0,  0x00, 0x00, 0xB0,  
0x00, 0x00, 0xC0,  0x00, 0x00, 0xD0,  0x00, 0x00, 0xE0,  0x00, 0x00, 0xF0,
/* 蓝色到青色(蓝绿色) */
0x00, 0x00, 0xF0,  0x00, 0x10, 0xF0,  0x00, 0x20, 0xF0,  0x00, 0x30, 0xF0,  
0x00, 0x40, 0xF0,  0x00, 0x50, 0xF0,  0x00, 0x60, 0xF0,  0x00, 0x70, 0xF0,  
0x00, 0x80, 0xF0,  0x00, 0x90, 0xF0,  0x00, 0xA0, 0xF0,  0x00, 0xB0, 0xF0,  
0x00, 0xC0, 0xF0,  0x00, 0xD0, 0xF0,  0x00, 0xE0, 0xF0,  0x00, 0xF0, 0xF0,
/* 青色(蓝绿色)到绿色*/
0x00, 0xF0, 0xF0,  0x00, 0xF0, 0xE0,  0x00, 0xF0, 0xD0,  0x00, 0xF0, 0xC0,  
0x00, 0xF0, 0xB0,  0x00, 0xF0, 0xA0,  0x00, 0xF0, 0x90,  0x00, 0xF0, 0x80,  
0x00, 0xF0, 0x70,  0x00, 0xF0, 0x60,  0x00, 0xF0, 0x50,  0x00, 0xF0, 0x40,  
0x00, 0xF0, 0x30,  0x00, 0xF0, 0x20,  0x00, 0xF0, 0x10,  0x00, 0xF0, 0x00,  
/* 绿色到黄色(红绿色)*/
0x00, 0xF0, 0x00,  0x10, 0xF0, 0x00,  0x20, 0xF0, 0x00,  0x30, 0xF0, 0x00,  
0x40, 0xF0, 0x00,  0x50, 0xF0, 0x00,  0x60, 0xF0, 0x00,  0x70, 0xF0, 0x00,  
0x80, 0xF0, 0x00,  0x90, 0xF0, 0x00,  0xA0, 0xF0, 0x00,  0xB0, 0xF0, 0x00,  
0xC0, 0xF0, 0x00,  0xD0, 0xF0, 0x00,  0xE0, 0xF0, 0x00,  0xF0, 0xF0, 0x00,  
/*黄色(红绿色)到红色*/
0xF0, 0xF0, 0x00,  0xF0, 0xE0, 0x00,  0xF0, 0xD0, 0x00,  0xF0, 0xC0, 0x00,  
0xF0, 0xB0, 0x00,  0xF0, 0xA0, 0x00,  0xF0, 0x90, 0x00,  0xF0, 0x80, 0x00,  
0xF0, 0x70, 0x00,  0xF0, 0x60, 0x00,  0xF0, 0x50, 0x00,  0xF0, 0x40, 0x00,  
0xF0, 0x30, 0x00,  0xF0, 0x20, 0x00,  0xF0, 0x10, 0x00,  0xF0, 0x00, 0x00,  
/* 红色到洋红(蓝红色) */
0xF0, 0x00, 0x00,  0xF0, 0x00, 0x10,  0xF0, 0x00, 0x20,  0xF0, 0x00, 0x30,  
0xF0, 0x00, 0x40,  0xF0, 0x00, 0x50,  0xF0, 0x00, 0x60,  0xF0, 0x00, 0x70,  
0xF0, 0x00, 0x80,  0xF0, 0x00, 0x90,  0xF0, 0x00, 0xA0,  0xF0, 0x00, 0xB0,  
0xF0, 0x00, 0xC0,  0xF0, 0x00, 0xD0,  0xF0, 0x00, 0xE0,  0xF0, 0x00, 0xF0,  
/*洋红(蓝红色)到蓝色 */
0xF0, 0x00, 0xF0,  0xE0, 0x00, 0xF0,  0xD0, 0x00, 0xF0,  0xC0, 0x00, 0xF0,  
0xB0, 0x00, 0xF0,  0xA0, 0x00, 0xF0,  0x90, 0x00, 0xF0,  0x80, 0x00, 0xF0,  
0x70, 0x00, 0xF0,  0x60, 0x00, 0xF0,  0x50, 0x00, 0xF0,  0x40, 0x00, 0xF0,  
0x30, 0x00, 0xF0,  0x20, 0x00, 0xF0,  0x10, 0x00, 0xF0,  0x00, 0x00, 0xF0,
/*黑色到洋红(蓝红色)*/
0x00, 0x00, 0x00,  0x10, 0x00, 0x10,  0x20, 0x00, 0x20,  0x30, 0x00, 0x30,  
0x40, 0x00, 0x40,  0x50, 0x00, 0x50,  0x60, 0x00, 0x60,  0x70, 0x00, 0x70,  
0x80, 0x00, 0x80,  0x90, 0x00, 0x90,  0xA0, 0x00, 0xA0,  0xB0, 0x00, 0xB0,  
0xC0, 0x00, 0xC0,  0xD0, 0x00, 0xD0,  0xE0, 0x00, 0xE0,  0xF0, 0x00, 0xF0, 
/* 黑色到青色(蓝绿色) */
0x00, 0x00, 0x00,  0x00, 0x10, 0x10,  0x00, 0x20, 0x20,  0x00, 0x30, 0x30,
0x00, 0x40, 0x40,  0x00, 0x50, 0x50,  0x00, 0x60, 0x60,  0x00, 0x70, 0x70,
0x00, 0x80, 0x80,  0x00, 0x90, 0x90,  0x00, 0xA0, 0xA0,  0x00, 0xB0, 0xB0,
0x00, 0xC0, 0xC0,  0x00, 0xD0, 0xD0,  0x00, 0xE0, 0xE0,  0x00, 0xF0, 0xF0,
/* 红色到白色*/
0xF0, 0x00, 0x00,  0xF0, 0x10, 0x10,  0xF0, 0x20, 0x20,  0xF0, 0x30, 0x30,
0xF0, 0x40, 0x40,  0xF0, 0x50, 0x50,  0xF0, 0x60, 0x60,  0xF0, 0x70, 0x70,
0xF0, 0x80, 0x80,  0xF0, 0x90, 0x90,  0xF0, 0xA0, 0xA0,  0xF0, 0xB0, 0xB0, 
0xF0, 0xC0, 0xC0,  0xF0, 0xD0, 0xD0,  0xF0, 0xE0, 0xE0,  0xF0, 0xF0, 0xF0,
/* 绿色到白色 */
0x00, 0xF0, 0x00,  0x10, 0xF0, 0x10,  0x20, 0xF0, 0x20,  0x30, 0xF0, 0x30,
0x40, 0xF0, 0x40,  0x50, 0xF0, 0x50,  0x60, 0xF0, 0x60,  0x70, 0xF0, 0x70,
0x80, 0xF0, 0x80,  0x90, 0xF0, 0x90,  0xA0, 0xF0, 0xA0,  0xB0, 0xF0, 0xB0,
0xC0, 0xF0, 0xC0,  0xD0, 0xF0, 0xD0,  0xE0, 0xF0, 0xE0,  0xF0, 0xF0, 0xF0,
/* 蓝色到白色 */
0x00, 0x00, 0xF0,  0x10, 0x10, 0xF0,  0x20, 0x20, 0xF0,  0x30, 0x30, 0xF0,  
0x40, 0x40, 0xF0,  0x50, 0x50, 0xF0,  0x60, 0x60, 0xF0,  0x70, 0x70, 0xF0,  
0x80, 0x80, 0xF0,  0x90, 0x90, 0xF0,  0xA0, 0xA0, 0xF0,  0xB0, 0xB0, 0xF0,  
0xC0, 0xC0, 0xF0,  0xD0, 0xD0, 0xF0,  0xE0, 0xE0, 0xF0,  0xF0, 0xF0, 0xF0
}; 

#define REGISTER_OFFSET	((unsigned char *) 0x14000000) 	// 初始化 S1D13506的寄存器
#define DISP_MEM_OFFSET	((unsigned char *) 0x4000000)
#define DISP_MEMORY_SIZE   0x200000

void main(void)
{
	unsigned char * pRegs = REGISTER_OFFSET;
	unsigned char * pMem  = DISP_MEM_OFFSET;
	unsigned char * pLUT  = LUT8;
	long lCnt;
	int idx;
	int rgb;

	*(pRegs + 0x001) = 0x00;					// 0000 0000 
	*(pRegs + 0x1FC) = 0x00;					// 0000 0000 
	*(pRegs + 0x004) = 0x00;					// 0000 0000 
	*(pRegs + 0x008) = 0x00;					// 0000 0000
	*(pRegs + 0x010) = 0x00;					// 0000 0000 从CLKI时钟得到MCLK时钟
	*(pRegs + 0x014) = 0x10;					// 0001 0000 从CLKI时钟得到LCD PCLK时钟
	*(pRegs + 0x018) = 0x02;					// 0000 0010 从CLKI2时钟得到CRT PCLK时钟
	*(pRegs + 0x01C) = 0x02;					// 0000 0010 从CLKI2时钟得到MediaPlug时钟
	
	*(pRegs + 0x01E) = 0x01;              		// 0000 0001 
	*(pRegs + 0x020) = 0x01;					// 0000 0001 两片EDO内存
	*(pRegs + 0x021) = 0x06;					// 0000 0110 刷新时间小于32 ms
	*(pRegs + 0x02A) = 0x01;					// 0000 0001 设置DRAM时间控制寄存器
	*(pRegs + 0x02B) = 0x01;					// 0000 0001 设置DRAM时间控制寄存器

										// 计算刷新率,计算公式为
//							 LCD PCLK
//				FrameRate = -----------------------------------------------
//						 (HDP + HNDP) * (VDP/2 + VNDP)
	*(pRegs + 0x030) = 0x26;					// 0010 0110  16 bit, 彩色, 双口
	*(pRegs + 0x031) = 0x00;					// 0000 0000 单色显示设置
	*(pRegs + 0x032) = 0x1D;					// 0100 1111 - HDP  = (0x1D + 1) * 8 = 240 
	*(pRegs + 0x034) = 0x27;					// 0001 1111 - HNDP = (0x27 + 1) * 8 = 320 
	*(pRegs + 0x035) = 0x00;					// 0000 0000 仅在TFT模式下设置
	*(pRegs + 0x036) = 0x00;					// 0000 0000仅在TFT模式下设置
	*(pRegs + 0x038) = 0xDF;					// 1101 1111 - VDP  = 0x1DF + 1 
	*(pRegs + 0x039) = 0x01;					// 0000 0001 - VDP  = 480    
	*(pRegs + 0x03A) = 0x2C;					// 0010 1100 - VNDP = (0x2C + 1) = 45
	*(pRegs + 0x03B) = 0x00;					// 0000 0000仅在TFT模式下设置
	*(pRegs + 0x03C) = 0x00;					// 0000 0000仅在TFT模式下设置

	*(pRegs + 0x040) = 0x03;					// 0000 0000 选择每个像素8 bit
	*(pRegs + 0x041) = 0x00;					// 0000 0000 使能双面板缓冲区

	*(pRegs + 0x042) = 0x00;					// 0000 0000 设置LCD 起始地址
	*(pRegs + 0x043) = 0x00;					// 0000 0000 第一个字节
	*(pRegs + 0x044) = 0x00;					// 0000 0000 显示内存缓冲区
	
	*(pRegs + 0x046) = 0x40;					// 0000 0000  LCD内存地址偏移
	*(pRegs + 0x047) = 0x01;					// 0000 0000 - 0x140 Words = 640 Bytes 

	*(pRegs + 0x048) = 0x00;					// 0000 0000 

	*(pRegs + 0x04A) = 0x00;					// 0000 0000 使能硬件
	*(pRegs + 0x04B) = 0x00;					// 0000 0000 设置FIFO值 

	*(pRegs + 0x050) = 0x00;					// 0000 0000 
	*(pRegs + 0x052) = 0x00; 					// 0000 0000
	*(pRegs + 0x053) = 0x00; 					// 0000 0000
	*(pRegs + 0x054) = 0x00; 					// 0000 0000
	*(pRegs + 0x056) = 0x00; 					// 0000 0000
	*(pRegs + 0x057) = 0x00; 					// 0000 0000
	*(pRegs + 0x058) = 0x00; 					// 0000 0000
	*(pRegs + 0x059) = 0x00; 					// 0000 0000
	*(pRegs + 0x05A) = 0x00; 					// 0000 0000
	*(pRegs + 0x05B) = 0x00; 					// 0000 0000

	*(pRegs + 0x060) = 0x00; 					// 0000 0000
	*(pRegs + 0x062) = 0x00; 					// 0000 0000
	*(pRegs + 0x063) = 0x00; 					// 0000 0000
	*(pRegs + 0x064) = 0x00; 					// 0000 0000
	*(pRegs + 0x066) = 0x00; 					// 0000 0000
	*(pRegs + 0x067) = 0x00; 					// 0000 0000
	*(pRegs + 0x068) = 0x00; 					// 0000 0000
	*(pRegs + 0x06A) = 0x00; 					// 0000 0000
	*(pRegs + 0x06B) = 0x00; 					// 0000 0000

	*(pRegs + 0x080) = 0x00; 					// 0000 0000
	*(pRegs + 0x081) = 0x00; 					// 0000 0000
	*(pRegs + 0x082) = 0x00; 					// 0000 0000
	*(pRegs + 0x083) = 0x00; 					// 0000 0000
	*(pRegs + 0x084) = 0x00; 					// 0000 0000
	*(pRegs + 0x085) = 0x00; 					// 0000 0000
	*(pRegs + 0x086) = 0x00; 					// 0000 0000 
	*(pRegs + 0x087) = 0x00; 					// 0000 0000
	*(pRegs + 0x088) = 0x00; 					// 0000 0000
	*(pRegs + 0x08A) = 0x00; 					// 0000 0000
	*(pRegs + 0x08B) = 0x00; 					// 0000 0000
	*(pRegs + 0x08C) = 0x00; 					// 0000 0000
	*(pRegs + 0x08E) = 0x00; 					// 0000 0000

	*(pRegs + 0x100) = 0x00; 					// 0000 0000
	*(pRegs + 0x101) = 0x00; 					// 0000 0000
	*(pRegs + 0x102) = 0x00; 					// 0000 0000
	*(pRegs + 0x103) = 0x00; 					// 0000 0000
	*(pRegs + 0x104) = 0x00; 					// 0000 0000
	*(pRegs + 0x105) = 0x00; 					// 0000 0000
	*(pRegs + 0x106) = 0x00; 					// 0000 0000
	*(pRegs + 0x108) = 0x00; 					// 0000 0000
	*(pRegs + 0x109) = 0x00; 					// 0000 0000
	*(pRegs + 0x10A) = 0x00; 					// 0000 0000
	*(pRegs + 0x10C) = 0x00; 					// 0000 0000
	*(pRegs + 0x10D) = 0x00; 					// 0000 0000
	*(pRegs + 0x110) = 0x00; 					// 0000 0000
	*(pRegs + 0x111) = 0x00; 					// 0000 0000
	*(pRegs + 0x112) = 0x00; 					// 0000 0000
	*(pRegs + 0x113) = 0x00; 					// 0000 0000
	*(pRegs + 0x114) = 0x00; 					// 0000 0000
	*(pRegs + 0x115) = 0x00; 					// 0000 0000
	*(pRegs + 0x116) = 0x00; 					// 0000 0000
	*(pRegs + 0x118) = 0x00; 					// 0000 0000
	*(pRegs + 0x119) = 0x00; 					// 0000 0000

	*(pRegs + 0x1E0) = 0x01; 					// 使能LCD LUT读写

	*(pRegs + 0x1E2) = 0;						// 复位LUT地址

	for (idx = 0; idx < 256; idx++)
	{
		for (rgb = 0; rgb < 3; rgb++)
		{
			*(pRegs + 0x1E4) = *pLUT;
			pLUT++;
		}
	}

	*(pRegs + 0x1F0) = 0;						// 000 000 禁止节省电源模式

	*(pRegs + 0x1F4) = 0;						// 0000 0000 

	*(pRegs + 0x1FC) = 0x01; 					// 0000 0001禁止节省电源模式

	for (lCnt = 0; lCnt < DISP_MEMORY_SIZE; lCnt++)
	{
		*pMem = 0;
		pMem++;
	}
}

⌨️ 快捷键说明

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