📄 hw_ssd1289.c
字号:
/******************************************************************/
/* Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved. */
/*******************************************************************
File : hw_Ili9320.c
Desc : Mcupanel型号的Mcu驱动
Author : nzy
Date :
Notes :
$Log :
*********************************************************************/
#include "hw_include.h"
#if(LCDPANEL == MCUIF_SSD1289)
//#define LCM_1289 1
/*---------------------------------------------------------
Name : Mcupanel_PowerOnInit
Desc : Mcupanel上电初始化
Params:
Return:
Author: nzy
Date :
-----------------------------------------------------------*/
void Mcupanel_PowerOnInit(void)
{
UINT32 i,j;
Lcdctrl_McuBypassMode(TRUE);
//######################################################################
#if (LCM_1289 == 1)
delay_nops(3000);
Mcupanel_RegSet(0x0000, 0x0000);
delay_nops(10000);
Mcupanel_RegSet(0x0002, 0x0600);
Mcupanel_RegSet(0x0003, 0xaee0);
Mcupanel_RegSet(0x000C, 0x0000);
Mcupanel_RegSet(0x000D, 0x0000);
// Mcupanel_RegSet(0x000E, 0x0000);
Mcupanel_RegSet(0x001E, 0x00e0);
delay_nops(50);
Mcupanel_RegSet(0x0007,0x0021);
Mcupanel_RegSet(0x0000,0x0001);
Mcupanel_RegSet(0x0007,0x0023);
Mcupanel_RegSet(0x0010,0x0000);
delay_nops(30);
Mcupanel_RegSet(0x0007,0x0033);
Mcupanel_RegSet(0x0011,0x6038); //
Mcupanel_RegSet(0x0012,0x6ceb); //
Mcupanel_RegSet(0x002f,0x12be); //
Mcupanel_RegSet(0x0026,0x7000); //
Mcupanel_RegSet(0x0027,0x007c); //
Mcupanel_RegSet(0x0020,0xb0e3); //
Mcupanel_RegSet(0x002e,0x7e45); //
//---------------------------------------------
Mcupanel_RegSet(0x0003, 0x6068);
Mcupanel_RegSet(0x000C, 0x0005);
Mcupanel_RegSet(0x000D, 0x0005);
Mcupanel_RegSet(0x000E, 0x2900); //3e
Mcupanel_RegSet(0x001E, 0x00a4); //b6
delay_nops(50);
Mcupanel_RegSet(0x0001, 0x7B3F);
delay_nops(5);
Mcupanel_RegSet(0x0005, 0x0000);
Mcupanel_RegSet(0x0006, 0x0000);
Mcupanel_RegSet(0x0016, 0xEF1C);
Mcupanel_RegSet(0x0017, 0x0003);
Mcupanel_RegSet(0x0031, 0x0000);
Mcupanel_RegSet(0x0032, 0x0000);
Mcupanel_RegSet(0x0033, 0x0000);
Mcupanel_RegSet(0x0034, 0x0000);
Mcupanel_RegSet(0x0035, 0x0000);
Mcupanel_RegSet(0x0036, 0x0706);
Mcupanel_RegSet(0x003a, 0x1f00);
Mcupanel_RegSet(0x003b, 0x000f);
Mcupanel_RegSet(0x0025, 0x8000);
delay_nops(300);
Mcupanel_RegSet(0x000B, 0x0100);
Mcupanel_RegSet(0x000F, 0x0000);
delay_nops(50);
Mcupanel_RegSet(0x0041, 0x0000);
Mcupanel_RegSet(0x0042, 0x0000);
Mcupanel_RegSet(0x0048, 0x0000);
Mcupanel_RegSet(0x0049, 0x013F);
Mcupanel_RegSet(0x004A, 0x0000);
Mcupanel_RegSet(0x004B, 0x0000);
Mcupanel_RegSet(0x0044, 0xEF00); //Windows x
Mcupanel_RegSet(0x0045, 0x0000); //Windows y Start
Mcupanel_RegSet(0x0046, 0x013F); //Windows y End
Mcupanel_RegSet(0x004E, 0x0000); //RAM Addr x
Mcupanel_RegSet(0x004F, 0x0000); //RAM Addr y
Mcupanel_RegSet(0x0023, 0x1100);
Mcupanel_RegSet(0x0024, 0x0000);
#endif
//#####################################################################
#if (LCM_1289 == 2)
delay_nops(3000);
Mcupanel_RegSet(0x0000, 0x0000);
delay_nops(10000);
Mcupanel_RegSet(0x0002, 0x0600);
Mcupanel_RegSet(0x0003, 0xaee0);
Mcupanel_RegSet(0x000C, 0x0000);
Mcupanel_RegSet(0x000D, 0x0000);
// Mcupanel_RegSet(0x000E, 0x0000);
Mcupanel_RegSet(0x001E, 0x00e0);
delay_nops(50);
Mcupanel_RegSet(0x0007,0x0021);
Mcupanel_RegSet(0x0000,0x0001);
Mcupanel_RegSet(0x0007,0x0023);
Mcupanel_RegSet(0x0010,0x0000);
delay_nops(30);
Mcupanel_RegSet(0x0007,0x0033);
Mcupanel_RegSet(0x0011,0x6038); //
Mcupanel_RegSet(0x0012,0x6ceb); //
Mcupanel_RegSet(0x002f,0x12be); //
Mcupanel_RegSet(0x0026,0x7000); //
Mcupanel_RegSet(0x0027,0x007c); //
Mcupanel_RegSet(0x0020,0xb0e3); //
Mcupanel_RegSet(0x002e,0x7e45); //
//---------------------------------------------
Mcupanel_RegSet(0x0003, 0x6068);
Mcupanel_RegSet(0x000C, 0x0004);
Mcupanel_RegSet(0x000D, 0x0005);
Mcupanel_RegSet(0x000E, 0x2900); //3e
Mcupanel_RegSet(0x001E, 0x00a8); //b6
delay_nops(50);
Mcupanel_RegSet(0x0001, 0x7B3F);
delay_nops(5);
Mcupanel_RegSet(0x0005, 0x0000);
Mcupanel_RegSet(0x0006, 0x0000);
Mcupanel_RegSet(0x0016, 0xEF1C);
Mcupanel_RegSet(0x0017, 0x0003);
Mcupanel_RegSet(0x0031, 0x0000);
Mcupanel_RegSet(0x0032, 0x0000);
Mcupanel_RegSet(0x0033, 0x0000);
Mcupanel_RegSet(0x0034, 0x0000);
Mcupanel_RegSet(0x0035, 0x0000);
Mcupanel_RegSet(0x0036, 0x0706);
Mcupanel_RegSet(0x003a, 0x1f00);
Mcupanel_RegSet(0x003b, 0x000f);
Mcupanel_RegSet(0x0025, 0x8000);
delay_nops(300);
Mcupanel_RegSet(0x000B, 0x0100);
Mcupanel_RegSet(0x000F, 0x0000);
delay_nops(50);
Mcupanel_RegSet(0x0041, 0x0000);
Mcupanel_RegSet(0x0042, 0x0000);
Mcupanel_RegSet(0x0048, 0x0000);
Mcupanel_RegSet(0x0049, 0x013F);
Mcupanel_RegSet(0x004A, 0x0000);
Mcupanel_RegSet(0x004B, 0x0000);
Mcupanel_RegSet(0x0044, 0xEF00); //Windows x
Mcupanel_RegSet(0x0045, 0x0000); //Windows y Start
Mcupanel_RegSet(0x0046, 0x013F); //Windows y End
Mcupanel_RegSet(0x004E, 0x0000); //RAM Addr x
Mcupanel_RegSet(0x004F, 0x0000); //RAM Addr y
Mcupanel_RegSet(0x0023, 0x1100);
Mcupanel_RegSet(0x0024, 0x0000);
#endif
Mcupanel_SetAddr(0x0,0x0);
// ---------- Tested throught displaying black ---------- //
#if 0
for(j=0;j<240;j++)
for(i=0;i<320;i++)
Mcupanel_Data(0x000000);
#endif
Lcdctrl_McuBypassMode(FALSE);
}
/*---------------------------------------------------------
Name : Mcupanel_Standby
Desc : Mcupanel的StandBy模式设置
Params: NORMAL -> 恢复正常模式
STANDBY -> 设置为StandBy模式
Return:
Author: nzy
Date :
-----------------------------------------------------------*/
void Mcupanel_Standby(BOOLEAN Enable)
{
if(Enable == STANDBY)//Standby mode
{
//Lcdctrl_McuBypassMode(TRUE);
//Mcupanel_RegSet(0x0007, 0x0033);
//delay_nops(10);
//Mcupanel_RegSet(0x0007, 0x0023);
//delay_nops(5);
//Mcupanel_RegSet(0x0007, 0x0021);
//delay_nops(10);
//Mcupanel_RegSet(0x0007, 0x0001);
//delay_nops(10);
//
//Mcupanel_RegSet(0x0010, 0x0001);
//delay_nops(10);
//Lcdctrl_McuBypassMode(FALSE);
}
else//Return normal
{
//Mcupanel_PowerOnInit();
Mcupanel_SetAddr(0x0,0x0);
}
}
/*---------------------------------------------------------
Name : Mcupanel_SetAddr
Desc : Mcupanel起始位置设置
Params: X -> X方向的坐标
Y -> Y方向的坐标
Return:
Author: nzy
Date :
-----------------------------------------------------------*/
void Mcupanel_Reset_Addr()
{
Lcdctrl_McuBypassMode(TRUE);
Mcupanel_RegSet(0x004E, 0); //RAM Addr x
Mcupanel_RegSet(0x004F, 0); //RAM Addr y
Mcupanel_Command(0x0022);
Lcdctrl_McuBypassMode(FALSE);
}
/*---------------------------------------------------------
Name : Mcupanel_SetAddr
Desc : Mcupanel起始位置设置
Params: X -> X方向的坐标
Y -> Y方向的坐标
Return:
Author: nzy
Date :
-----------------------------------------------------------*/
void Mcupanel_SetAddr(UINT32 x, UINT32 y)
{
Lcdctrl_McuBypassMode(TRUE);
Mcupanel_RegSet(0x004E, y); //RAM Addr x
Mcupanel_RegSet(0x004F, x); //RAM Addr y
Mcupanel_Command(0x0022);
Lcdctrl_McuBypassMode(FALSE);
}
/*---------------------------------------------------------
Name : Mcupanel_SetAddr
Desc : Mcupanel矩形区域设置
Params: area -> 矩形区域的左上和右下点坐标
Return:
Author: nzy
Date :
-----------------------------------------------------------*/
void Mcupanel_SetWindow(UHRECT *area)
{ // Horizontal GRAM Start Address-----HSA[7:0]
Mcupanel_RegSet(0x0044, (area->y + area->h - 1)<<8 | (area->y)); // Horizontal GRAM End Address-----HEA[7:0]
Mcupanel_RegSet(0x0045, area->x); // Vertical GRAM Start Address-----VSA[8:0]
Mcupanel_RegSet(0x0046, (area->x + area->w - 1)); // Vertical GRAM Start Address-----VEA[8:0]
Mcupanel_SetAddr(area->x, area->y);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -