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

📄 lcdlib.c

📁 ARM机的TFT液晶显示例子程序
💻 C
字号:
/*****************************************
  NAME: lcdlib.c
  DESC: lcd configuration low-level codes
  HISTORY:
  2002.03.13:draft ver 0.0
 *****************************************/
#include <string.h>
#include "2410addr.h"
#include "2410lib.h"
#include "def.h"

#include "..\inc\lcdlib.h"

 U32 (*frameBuffer16BitTft640480)[SCR_XSIZE_TFT_640480/2];


unsigned long  Lcd_Init(int type)
{
    switch(type)
    {

    	
     case MODE_TFT_16BIT_640480:
    	//frameBuffer16BitTft640480=(U32 (*)[SCR_XSIZE_TFT_640480/2])LCDFRAMEBUFFER;
		rLCDCON1=(CLKVAL_TFT_640480<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0;
			// TFT LCD panel,16bpp TFT,ENVID=off
		rLCDCON2=(VBPD_640480<<24)|(LINEVAL_TFT_640480<<14)|(VFPD_640480<<6)|(VSPW_640480);
		rLCDCON3=(HBPD_640480<<19)|(HOZVAL_TFT_640480<<8)|(HFPD_640480);
		rLCDCON4=(MVAL<<8)|(HSPW_640480);
		rLCDCON5=(1<<11)|(1<<9)|(1<<8)|(1);	//FRM5:6:5,HSYNC and VSYNC are inverted
		//rLCDSADDR1=(((U32)frameBuffer16BitTft640480>>22)<<21)|M5D((U32)frameBuffer16BitTft640480>>1);
		rLCDSADDR1=((LCDFRAMEBUFFER>>22)<<21)|M5D(LCDFRAMEBUFFER>>1);
		 //rLCDSADDR2=M5D( ((U32)frameBuffer16BitTft640480+(SCR_XSIZE_TFT_640480*LCD_YSIZE_TFT_640480*2))>>1 );
		rLCDSADDR2=M5D( ((U8)LCDFRAMEBUFFER+(640*480*2))>>1 );
		
		
		//rLCDSADDR3=((0)<<11)|(480);
		rLCDSADDR3= 0x0;
		rLCDINTMSK|=(3); // MASK LCD Sub Interrupt
		rLPCSEL&=(~7); // Disable LPC3600
		rTPAL=0; // Disable Temp Palette
    break;
   default:
    break;
    }	
    return 0;
}





void Lcd_CstnOnOff(int onoff)
{
    // 1:CSTN Panel on  0:CSTN Panel off //	
    if(onoff==1)
    	rLCDCON1|=1; // ENVID=ON
    else
	rLCDCON1 =rLCDCON1 & 0x3fffe; // ENVID Off
    rGPBUP=rGPBUP|(1<<5); // Pull-up disable
    rGPBDAT=rGPBDAT&(~(1<<5))|(onoff<<5); // GPB5=On or Off
    rGPBCON=rGPBCON&(~(3<<10))|(1<<10);    //GPD9=output
}    


void Lcd_EnvidOnOff(int onoff)
{
    if(onoff==1)
	rLCDCON1|=1; // ENVID=ON
    else
	rLCDCON1 =rLCDCON1 & 0x3fffe; // ENVID Off
}    


void Lcd_Lpc3600Enable(void)
{
    rLPCSEL&=~(7);
//    rLPCSEL|=(7); // 240320,Enable LPC3600 : LTS350Q1-PD1
    rLPCSEL =(0); // 240320,disable  LPC3600 : LTS350Q1-PE2
}    


void Lcd_PowerEnable(int invpwren,int pwren)
{
    //GPG4 is setted as LCD_PWREN
    rGPGUP=rGPGUP&(~(1<<4))|(1<<4); // Pull-up disable
    rGPGCON=rGPGCON&(~(3<<8))|(3<<8); //GPG4=LCD_PWREN
    //Enable LCD POWER ENABLE Function
    rLCDCON5=rLCDCON5&(~(1<<3))|(pwren<<3);   // PWREN
    rLCDCON5=rLCDCON5&(~(1<<5))|(invpwren<<5);   // INVPWREN
}    


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -