📄 lcm_upd161704.c.svn-base
字号:
#include "../../INCLUDE/API.h"
#include "lcm.h"
#include "mp321app.h"
//#include "../LCD/Include/utillcd.h"
//=================================================
//This file is for TOSHIBA --LTM020A PANEL MODULE (uPD161704)
//
//=================================================
#if (defined(_PRIMARY_LCM_uPD161704) || defined(_SECONDARY_LCM_uPD161704))
void uPD161704_LCM_Init(U8 bTargetLCM)
{
MP321_Release(bTargetLCM);
uPD161704_LCM_PowerOn();
uPD161704_LCM_DisplayOn();
}
void uPD161704_LCM_PowerOn(void)
{
MC_LCM_RESET_H;
__TIMER_DELAY(50);
MC_LCM_RESET_L;
__TIMER_DELAY(80);
MC_LCM_RESET_H;
__TIMER_DELAY(50);
LCM_WriteCmd(0x03, 0x0001); // SW Reset
LCM_WriteCmd(0x3A, 0x0001); // OSCON
// Mode setting
LCM_WriteCmd(0x32, 0x0002); //
LCM_WriteCmd(0x33, 0x0001); // NLINE = 2
LCM_WriteCmd(0x37, 0x0000); //
LCM_WriteCmd(0x77, 0x0FFF); //
LCM_WriteCmd(0x72, 0x0001); //
// DC/DC setting
LCM_WriteCmd(0x1C, 0x16C5); //
// Gamma setting
LCM_WriteCmd(0x52, 0x0021); //
LCM_WriteCmd(0x53, 0x0011); //
LCM_WriteCmd(0x24, 0x0061); //
LCM_WriteCmd(0x25, 0x0061); //
LCM_WriteCmd(0x26, 0x0000); //
LCM_WriteCmd(0x27, 0x0000); //
LCM_WriteCmd(0x61, 0x0026); //
LCM_WriteCmd(0x62, 0x0008); //
LCM_WriteCmd(0x63, 0x0015); //
LCM_WriteCmd(0x64, 0x0016); //
LCM_WriteCmd(0x65, 0x000C); //
LCM_WriteCmd(0x66, 0x0024); //
// Driver timming setting
LCM_WriteCmd(0x4D, 0x0205); //
LCM_WriteCmd(0x4E, 0x0001); //
LCM_WriteCmd(0x4F, 0x0104); //
LCM_WriteCmd(0x2E, 0x002F); //
// Display area setting
LCM_WriteCmd(0x29, 0x0000); //
LCM_WriteCmd(0x2A, 0x0000); //
LCM_WriteCmd(0x2B, 0x00EF); //
LCM_WriteCmd(0x2C, 0x013F); //
// Window area setting
LCM_WriteCmd(0x08, 0x0000); //
LCM_WriteCmd(0x09, 0x00EF); //
LCM_WriteCmd(0x0A, 0x0000); //
LCM_WriteCmd(0x0B, 0x013F); //
// Window mode setting
LCM_WriteCmd(0x05, 0x0000); //
// Ram address setting
LCM_WriteCmd(0x06, 0x0000); //
LCM_WriteCmd(0x07, 0x0000); //
//LCM_WriteCmd(0x0E, 0x0000); // RAM Write Index
// DC/DC setting
LCM_WriteCmd(0x18, 0x01EA); //
LCM_WriteCmd(0x1A, 0x00A2); //
LCM_WriteCmd(0x1B, 0x0028); //
LCM_WriteCmd(0x1C, 0x16C5); //
// VCOM voltage setting
LCM_WriteCmd(0x1F, 0x0037); //
LCM_WriteCmd(0x20, 0x0080); //
// DC/DC On
LCM_WriteCmd(0x18, 0x1E6B); //
__TIMER_DELAY(100);
// VCOM on
LCM_WriteCmd(0x1E, 0x0021); //
// Gate output enable
LCM_WriteCmd(0x3B, 0x0001); //
}
void uPD161704_LCM_DisplayOn(void)
{
LCM_WriteCmd(0x00, 0x0000);
LCM_WRITE_ADR = 0x0E; // RAM Write Index
}
void uPD161704_LCM_DisplayOff(void)
{
}
void uPD161704_LCM_StandbyOn(void)
{
LCM_WriteCmd(0x00, 0x0008); // STB = 1
__TIMER_DELAY(20);
LCM_WriteCmd(0x18, 0x1F6A); // DCON = 0
LCM_WriteCmd(0x00, 0x000C); // STBY_GOFF = 1
LCM_WriteCmd(0x3A, 0x0000); // OSCON = 0
}
void uPD161704_LCM_StandbyOff(void)
{
LCM_WriteCmd(0x3A, 0x0001); // OSCON = 1
LCM_WriteCmd(0x00, 0x0008); // STBY_GOFF = 0
LCM_WriteCmd(0x18, 0x1E6B); // DCON = 1
//__TIMER_DELAY(30);
LCM_WriteCmd(0x00, 0x0000); // STB = 0
}
void uPD161704_LCM_Update(U8 bTargetLCM, U16 *pu16Buffer)
{
unsigned short i,j;
MP321_Release(bTargetLCM);
uPD161704_LCM_AddressRefresh();
LCM_WRITE_ADR = 0x0E; // RAM Write Index
for(i=0;i<320;i++)
{
for(j=0;j<240;j++)
{
LCM_WRITE_DAT= *(pu16Buffer + i * 240 + j);
}
}
//iMagic_DisableBypass();
}
void uPD161704_LCM_AddressRefresh(void)
{
LCM_WriteCmd(0x06, 0x0000);
LCM_WriteCmd(0x07, 0x0000);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -