📄 lcm_s1d19105d00b.c.svn-base
字号:
#include "iMagicApi.h"
#include "LCM.h"
#include "UtilLcd.h"
//=================================================
//This file is for -- PANEL MODULE Sekio Epson S1D19105D00B
//
//=================================================
#if (defined(_PRIMARY_LCM_S1D19105D00B) || defined(_SECONDARY_LCM_S1D19105D00B))
void S1D19105D00B_LCM_PowerOn(void)
{
unsigned int u16Temp;
#if 0
//*(volatile unsigned char *)0x402D1 = 0x80; // RESET = H
__TIMER_DELAY(50);
//*(volatile unsigned char *)0x402D1 = 0x00; // RESET = " 0"
__TIMER_DELAY(10);
//*(volatile unsigned char *)0x402D1 = 0x80; // RESET = " 1 "
__TIMER_DELAY(2);
#endif
LCM_WRITE_ADR = 0x9600; // VOSC On
__TIMER_DELAY(20);
LCM_WRITE_ADR = 0x9200; // OSC start
// Display interface set
LCM_WriteCmd(0x3100, 0x0000);
LCM_WriteMemory(0x0000);
// Gate Line Scan
LCM_WriteCmd(0x6F00, 0x0200);
LCM_WriteMemory(0x0000);
LCM_WriteMemory(0xDB00);
// Data Set
LCM_WriteCmd(0xBC00, 0x0000);
// Display Set
LCM_WriteCmd(0xCA00, 0x0000);
LCM_WriteMemory(0x3800);
LCM_WriteMemory(0xC000);
LCM_WriteMemory(0x4300);
LCM_WriteMemory(0xDB00);
LCM_WriteMemory(0x0000);
LCM_WriteMemory(0x0700);
LCM_WriteMemory(0x0700);
LCM_WriteMemory(0x0000);
// Display Timing Set
#if 0
LCM_WriteCmd(0xA1, 0x0000);
LCM_WriteMemory(0x3800);
LCM_WriteMemory(0x0500);
LCM_WriteMemory(0x3300);
#else
LCM_WriteCmd(0xA100, 0x0200);
LCM_WriteMemory(0x3600);
LCM_WriteMemory(0x0400);
LCM_WriteMemory(0x3400);
#endif
LCM_WriteMemory(0x0000);
LCM_WriteMemory(0x0000);
LCM_WriteMemory(0x0900);
// Electron volume set
LCM_WriteCmd(0x2000, 0x1700);
LCM_WriteMemory(0x1000);
LCM_WriteMemory(0x1000);
LCM_WriteMemory(0x1A00);
LCM_WriteMemory(0x1E00);
LCM_WriteMemory(0x1600);
LCM_WriteMemory(0x0000);
LCM_WriteMemory(0x0300);
// Power Control Set
LCM_WriteCmd(0x2100, 0x3100);
LCM_WriteMemory(0x3300);
LCM_WriteMemory(0x0E00);
LCM_WriteMemory(0x0F00);
LCM_WriteMemory(0xAD00);
LCM_WriteMemory(0xA000);
LCM_WriteMemory(0x7700);
LCM_WriteMemory(0xA500);
LCM_WriteMemory(0x0100);
LCM_WriteMemory(0xA500);
LCM_WriteMemory(0x0100);
LCM_WriteMemory(0x4400);
LCM_WriteMemory(0x7700);
// AC operation drive Frame inversion
LCM_WriteCmd(0x8C00, 0x0100);
LCM_WriteMemory(0x0000);
// Display mode set
LCM_WriteCmd(0x8B00, 0x0000);
LCM_WriteMemory(0x0000);
LCM_WriteMemory(0x7000);
LCM_WriteMemory(0x6500);
// Gamma correction set
#if 0
LCM_WriteCmd(0x2200, 0x3300);
LCM_WriteMemory(0x7700);
LCM_WriteMemory(0x6700);
LCM_WriteMemory(0x1100);
LCM_WriteMemory(0x4700);
LCM_WriteMemory(0x0000);
#else
LCM_WriteCmd(0x2200, 0x3200);
LCM_WriteMemory(0x0000);
LCM_WriteMemory(0x4400);
LCM_WriteMemory(0x4400);
LCM_WriteMemory(0x4400);
LCM_WriteMemory(0x4400);
#endif
// Partial power set
LCM_WriteCmd(0x2300, 0x0300);
LCM_WriteMemory(0x6500);
LCM_WriteMemory(0x0F00);
LCM_WriteMemory(0xAD00);
LCM_WriteMemory(0xA000);
LCM_WriteMemory(0x4400);
LCM_WriteMemory(0x7700);
// Sleep out
LCM_WRITE_ADR = 0x9400;
// Start address set
LCM_WriteCmd(0x1500, 0x0000);
LCM_WriteMemory(0x0000);
// End address set
LCM_WriteCmd(0x7500, 0xAF00);
LCM_WriteMemory(0xDB00);
// RAM Write
LCM_WRITE_ADR = 0x5C00;
// Partial display out
LCM_WRITE_ADR = 0xA900;
// RAM Write
LCM_WRITE_ADR = 0x5C00;
/*
for (u16Temp = 0; u16Temp < (LCM_WIDTH * LCM_HEIGHT); u16Temp++)
LCM_WriteMemory(0x0000);
*/
}
void S1D19105D00B_LCM_DisplayOn(void)
{
// Display on
LCM_WRITE_ADR = 0xAF00; // GRAM Write
// Display data refresh
LCM_WRITE_ADR = 0x5C00;
}
void S1D19105D00B_LCM_DisplayOff(void)
{
}
void S1D19105D00B_LCM_StandbyOn(void)
{
LCM_WRITE_ADR = 0x4E00;
__TIMER_DELAY(50);
LCM_WRITE_ADR = 0x9300;
__TIMER_DELAY(50);
LCM_WRITE_ADR = 0x9700;
__TIMER_DELAY(50);
}
void S1D19105D00B_LCM_StandbyOff(void)
{
LCM_WRITE_ADR = 0x9600;
__TIMER_DELAY(50);
LCM_WRITE_ADR = 0x9200;
__TIMER_DELAY(50);
}
void S1D19105D00B_LCM_AddressRefresh(void)
{
// Display data refresh
LCM_WRITE_ADR = 0x5C00;
BBP_ShortDelay(_LCM_RW_DELAY_TIME);
}
void S1D19105D00B_LCM_Init(U08 bTargetLCM)
{
iMagic_Release(bTargetLCM);
S1D19105D00B_LCM_PowerOn();
S1D19105D00B_LCM_DisplayOn();
}
void S1D19105D00B_LCM_Update(U08 bTargetLCM, U16 *pu16Buffer)
{
unsigned short i,j;
iMagic_Release(bTargetLCM);
S1D19105D00B_LCM_AddressRefresh();
LCM_WRITE_ADR = 0x5C00; // RAM Write Index
BBP_ShortDelay(_LCM_RW_DELAY_TIME);
for (i = 0; i < 220; i++)
{
for(j=0;j<176;j++)
{
LCM_WRITE_DAT= *(pu16Buffer + i * 176 + j);
BBP_ShortDelay(_LCM_RW_DELAY_TIME);
}
}
//iMagic_DisableBypass();
}
#endif // #ifdef _LCM_S1D19105D00B
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -