⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hw_ssd1289.c

📁 RK27驱动
💻 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 + -