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

📄 lcddemo.c

📁 ucCos移植到广州友善nano2410
💻 C
字号:
/*************************************************************************
Include files
*************************************************************************/
#include <string.h>
#include "..\inc\2410addr.h"
#include "..\inc\def.h"
#include "..\inc\lcddrive.h"
#include "..\inc\2410lib.h"
#include "..\inc\glib.h"
#include "..\inc\image\flower.h"
#include "..\inc\image\logo.h"
#include "..\inc\font\numfont.h"
#include "..\inc\font.h"

extern int mix, overwrite;
extern volatile int gray;

//LCD Data客 力绢 饭瘤胶磐甫 檬扁拳茄促.
void LcdPortInit(void)
{
    rGPCUP=0xffffffff; // Disable Pull-up register
    //Initialize VD[7:0],LCDVF[2:0],VM,VFRAME,VLINE,VCLK,LEND 
    rGPCCON=0xaaaaaaaa; 
    rGPDUP=0xffffffff; // Disable Pull-up register
    rGPDCON=0xaaaaaaaa; //Initialize VD[23:8]
}

//LCD 拳搁农扁殿阑 汲沥 葛碘 
void LCDInit()
{
	//TFT LCD panel,16bpp TFT,ENVID=off
 	rLCDCON1=(CLKVAL_TFT_240320<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0;
    rLCDCON2=(VBPD_240320<<24)|(LINEVAL_TFT_240320<<14)|(VFPD_240320<<6)|(VSPW_240320);
 	rLCDCON3=(HBPD_240320<<19)|(HOZVAL_TFT_240320<<8)|(HFPD_240320);
 	
 	rLCDCON4=(MVAL<<8)|(HSPW_240320);
 	rLCDCON5=(1<<11)|(1<<10)|(1<<9)|(1<<8)|(0<<7)|(0<<6)|(1<<3)|(BSWP<<1)|(HWSWP);
 	//FRM5:6:5,HSYNC and VSYNC are inverted,Rising Egde Data Fetch.

 	//rLCDSADDR1=(((U32)LCDFRAMEBUFFER>>22)<<21)|M5D((U32)LCDFRAMEBUFFER>>1);
 	rLCDSADDR1=(((U32)LCDFRAMEBUFFER>>22)<<21)|M5D((U32)LCDFRAMEBUFFER>>1);
 	rLCDSADDR2=M5D(((U32)LCDFRAMEBUFFER+(SCR_XSIZE_TFT_240320*LCD_YSIZE_TFT_240320*2))>>1);
 	rLCDSADDR3=(((SCR_XSIZE_TFT_240320-LCD_XSIZE_TFT_240320)/1)<<11)|(LCD_XSIZE_TFT_240320/1);
 	
 	rLCDINTMSK|=(3); // MASK LCD Sub Interrupt
 	rLPCSEL&=(~7); //Disable LPC3600
 	rTPAL=0; //Disable Temp Palette
}

//GPG4阑 捞侩窍咯 LCD Backlight On/Off甫 力绢茄促.
void LcdPowerEnable(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_PWREN 免仿脚龋 Enable.
    rLCDCON5=rLCDCON5&(~(1<<3))|(pwren<<3);   // PWREN
    rLCDCON5=rLCDCON5&(~(1<<5))|(invpwren<<5);   // PWREN脚龋 必己
} 

//免仿林颇荐客单捞磐殿 阿阿狼 脚龋甫 On/Off矫糯
void LcdEnvidOnOff(int onoff)
{
    if(onoff==1)
 		rLCDCON1|=1; // ENVID=ON(LCD 厚叼坷 肺流,免仿 倾侩)
    else
 		rLCDCON1 =rLCDCON1 & 0x3fffe; // ENVID Off
}    

void LCDLpc36000Enable(void)
{
	rLPCSEL&=~(7);
	rLPCSEL|=(7);   //320240,Enable LPC3600
}

//===================================================================
void Lcddemo(void)
{
	int i=0;
	int j,k;
	
	Uart_Printf("\n   TFT LCD(320*240) Demo\n");
	LCDInit();
  	LcdPortInit();
 	LcdEnvidOnOff(1);
 	Test_Touchpanel();
 	
 	//滚欺甫 努府绢 茄促.
 	for(i=0;i<240*2*320;i+=4)     
          *(int *)(LCDFRAMEBUFFER+i)=0x00000000;

    mix=0; gray=0; overwrite=1;
    //DrawBMP(0, 0, flower);
    
 	Uart_Printf("Press Any Key To Stop!\n") ;  
    
    /*
	do
	{	
    	for(j=0;j<320;j++)
           for(i=0;i<240;i++)
                PutPixel(i,j,0x5aa5);
		Delay (100);
	}while(!Uart_Getch());
    

   	for(j=0;j<320;j++)
           for(i=0;i<240;i++)
                PutPixel(i,j,((int)DEMO256[k++]));
	Delay (100);
    */

   
	Glib_ClearScr(0);
    Glib_FilledRectangle(0,0,320,35,0x0); 
    
 	Glib_FilledRectangle(5,35,315,40,0xf800); // R
 	Glib_FilledRectangle(10,40,310,45,0x07e0); // Green
 	Glib_FilledRectangle(15,45,305,50,0x001f); // Blue
 	
 	Glib_FilledRectangle(5,37,9,200,0xf800); // R
 	Glib_FilledRectangle(10,45,15,195,0x07e0); // Green
 	Glib_FilledRectangle(16,50,20,190,0x001f); // Blue
 	
 	Glib_FilledRectangle(311,40,315,200,0xf800); // R
 	Glib_FilledRectangle(305,45,310,195,0x07e0); // Green
 	Glib_FilledRectangle(300,50,304,190,0x001f); // Blue
 	
 	Glib_FilledRectangle(5,200,315,206,0xf800); // G
 	Glib_FilledRectangle(10,195,310,200,0x07e0); // B
 	Glib_FilledRectangle(16,190,304,195,0x001f); // B
 	
 	Uart_Getch();
 	//DrawBMP(0, 0, logo);
 	
 	Uart_Getch(); 	
 	mix=75; //MIX蔼捞 目龙荐废 怠磨秦瘤绰 祸捞 刊绢柳促. 	
    Ov_Box(260,30,310,60,0x001f);
    Ov_Box(260,80,310,110,0x001f);
    Ov_Box(260,130,310,160,0x001f);
    Ov_Box(260,180,310,200,0x001f);
    
    
    Uart_Getch(); 
    Glib_ClearScr(0);	
    Lcd_PutString("Press Any Key to return menu.",30,30);
    Lcd_PutString("磷绰 朝鳖瘤 窍疵阑 快矾矾",10,80);
 	Lcd_PutString("茄痢 何掺烦捞 绝扁甫",10,95);
 	Lcd_PutString("蕾货俊 捞绰 官恩俊档",10,110);
 	Lcd_PutString("唱绰 鲍肺客沁促",10,125);
 	Lcd_PutString("喊阑 畴贰窍绰 付澜栏肺",10,140);
 	Lcd_PutString("葛电 磷绢啊绰 巴甸阑 荤尔秦具瘤",10,155);
 	Lcd_PutString("弊府绊 唱茄抛 林绢柳 辨阑",10,170);
	Lcd_PutString("吧绢啊具摆促.",10,185);
	Lcd_PutString("坷疵广俊档 喊捞 官恩俊 胶摹款促.",10,200);

 	Display_Time(99);
 	
	Uart_Getch();
    //LcdEnvidOnOff(0); 			// Disable ENVID    
}


void Display_Time(int value)
{
	int i, j, v, position, kk;
	Glib_FilledRectangle(125,210,195,230,0x0000); //Time Display(Bg - Black)
	
	kk=0;
	v = value/10 ;
	position = 135 ;

	for(j=228; j>=212; j--)
		for(i=position; i<position+12; i++)
			PutPixel(i,j, (int)numfont[v][kk++]);

	kk=0;
	v = value%10 ;
	position += 12 ;
	for(j=228; j>=212; j--)
		for(i=position; i<position+12; i++)
			PutPixel(i,j, (int)numfont[v][kk++]);
}

⌨️ 快捷键说明

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