?? 7-1.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,
/*黑色到藍(lán)色*/
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,
/* 藍(lán)色到青色(藍(lán)綠色) */
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,
/* 青色(藍(lán)綠色)到綠色*/
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,
/* 紅色到洋紅(藍(lán)紅色) */
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,
/*洋紅(藍(lán)紅色)到藍(lán)色 */
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,
/*黑色到洋紅(藍(lán)紅色)*/
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,
/* 黑色到青色(藍(lán)綠色) */
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,
/* 藍(lán)色到白色 */
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內(nèi)存
*(pRegs + 0x021) = 0x06; // 0000 0110 刷新時間小于32 ms
*(pRegs + 0x02A) = 0x01; // 0000 0001 設(shè)置DRAM時間控制寄存器
*(pRegs + 0x02B) = 0x01; // 0000 0001 設(shè)置DRAM時間控制寄存器
// 計算刷新率,計算公式為
// LCD PCLK
// FrameRate = -----------------------------------------------
// (HDP + HNDP) * (VDP/2 + VNDP)
*(pRegs + 0x030) = 0x26; // 0010 0110 16 bit, 彩色, 雙口
*(pRegs + 0x031) = 0x00; // 0000 0000 單色顯示設(shè)置
*(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模式下設(shè)置
*(pRegs + 0x036) = 0x00; // 0000 0000僅在TFT模式下設(shè)置
*(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模式下設(shè)置
*(pRegs + 0x03C) = 0x00; // 0000 0000僅在TFT模式下設(shè)置
*(pRegs + 0x040) = 0x03; // 0000 0000 選擇每個像素8 bit
*(pRegs + 0x041) = 0x00; // 0000 0000 使能雙面板緩沖區(qū)
*(pRegs + 0x042) = 0x00; // 0000 0000 設(shè)置LCD 起始地址
*(pRegs + 0x043) = 0x00; // 0000 0000 第一個字節(jié)
*(pRegs + 0x044) = 0x00; // 0000 0000 顯示內(nèi)存緩沖區(qū)
*(pRegs + 0x046) = 0x40; // 0000 0000 LCD內(nèi)存地址偏移
*(pRegs + 0x047) = 0x01; // 0000 0000 - 0x140 Words = 640 Bytes
*(pRegs + 0x048) = 0x00; // 0000 0000
*(pRegs + 0x04A) = 0x00; // 0000 0000 使能硬件
*(pRegs + 0x04B) = 0x00; // 0000 0000 設(shè)置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; // 復(fù)位LUT地址
for (idx = 0; idx < 256; idx++)
{
for (rgb = 0; rgb < 3; rgb++)
{
*(pRegs + 0x1E4) = *pLUT;
pLUT++;
}
}
*(pRegs + 0x1F0) = 0; // 000 000 禁止節(jié)省電源模式
*(pRegs + 0x1F4) = 0; // 0000 0000
*(pRegs + 0x1FC) = 0x01; // 0000 0001禁止節(jié)省電源模式
for (lCnt = 0; lCnt < DISP_MEMORY_SIZE; lCnt++)
{
*pMem = 0;
pMem++;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -