网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> 代码示例 >> TI DSP代码示例 >> C5000 >> 文章正文
  基于OMAP5910图像显示和LCD系统:图像控制器程序代码         ★★★ 【字体:
基于OMAP5910图像显示和LCD系统:图像控制器程序代码
作者:61IC    文章来源:本站原创    点击数:    更新时间:2007-1-17    

基于OMAP5910图像显示和LCD系统:图像控制器程序代码

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++;
 }
}

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    OMAP5910低功耗系统电源管理…
    OMAP5910低功耗系统电源管理…
    OMAP5910低功耗系统电源管理…
    OMAP5910与TPS65010连接图
    基于OMAP5910的视频系统
    OMAP5910与NEC LCD连接电路图
    OMAP5910与TLV320AIC23接口电…
    基于OMAP5910图像显示和LCD系…
    基于OMAP5910图像显示和LCD系…
    基于OMAP5910图像显示和LCD系…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号