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

📄 lcd.c~

📁 LCD的程序 3D效果的LCD 很有参考价值
💻 C~
字号:
#include "lcd.h"
//#define pod(a,d)	(*(volatile unsigned *)a = d)
void init_LCD()
{
	pod(LCD_CLOCK_BASE,0x3);//25M,one of third AHB
//	pod(ALT_SIGNAL_BASE,0x0);// the signal does not toggle
	pod(SIGNAL_POLARRITY_BASE,0x06);// D=0,Enab=0,Frame=1,Load=1,cp=1
//	pod(HSYNC_TIME1_BASE,0x0000);//back-Hsync=160 front-Hsync=0
        pod(HSYNC_TIME1_BASE,0x8610);//back-Hsync=144 front-Hsync=16
	pod(HSYNC_TIME2_BASE,0x09);//Hsync Pulse Width=10
//	pod(VSYNC_TIME1_BASE,0x0000);//back-Vsync=45,front-Vsync=0
	pod(VSYNC_TIME1_BASE,0x0b20);//back-Vsync=13,front-Vsync=32
	pod(VSYNC_TIME2_BASE,0x01);//Vsync Pulse Width=2
//	pod(VIDEO_SCR_ADDRESS_Y,0x00100000);
      //  pod(VIDEO_SCR_ADDRESS_CB,0x00082c00);
//	pod(VIDEO_SCR_ADDRESS_CR,0x00095800);
}
void init_DPU()
{       
	int i; 
	pod(DISPLAY_MODE_BASE,0x0);
	pod(INTERRUPT_MASK_BASE,0x0);// MASK all interrupts
        pod(DISPLAY_SIZE_BASE,0x01df027f);//height=480(0x1e0),width=640(0x280);
	pod(TWOD_SCREEN_MODE,0x00000000);// close all SCR
        pod(MAX_VIDEO_MEM_FETCH_LENGTH,0x0b);
	pod(PRO_ROW_HEIGHT,0x2);// prosess row height
        pod(VIDEO_WINDOW_ORIGN,0x00000000);
        pod(VIDEO_WINDOW_END,0x01df027f);
       // pod(VIDEO_SCR_ADDRESS_Y,0x10070000);
       // pod(VIDEO_SCR_ADDRESS_CB,0x10082c00);
//	pod(VIDEO_SCR_ADDRESS_CR,0x10095800);
        pod(DISPLAY_CONTROL,0x00014020);
	pod(DISPLAY_MODE_BASE,0x5);

}
void init_gpu( void )
{
	//initialize GPU
	pod( GLE_SS_REG,      0x00000003 );		// reset GLE
	pod( GLE_INT_REG,     0x00000fff );		// enable GLE interrupt
	pod( GLE_CAUSE_REG ,  0x0000a5ff );		// clear GLE int cause
	pod( GLE_DATA_RET_STATUS_REG,0x00000000 );	// clear Data return statsu

	// intialize renderer
	pod( REN_INTR_REG,   0x00000000 );			//clear renderer interrupt status
	pod( REN_PERF_CTR_REG, 0x00000000 );		//disable performance counter

//tako	pod( REN_VRAM1_XY_REG, ( (240<<16) | 512 ) );
//tako	pod( REN_VRAM2_XY_REG, ( (240<<16) | 512 ) );
	pod( REN_VRAM1_XY_REG, 0);
	pod( REN_VRAM2_XY_REG, 0);

	pod( REN_SYSMEM_OFS_REG, ADDR_SYSTEM_MEMORY_OFFSET );		//system momory offset
}// init_gpu()
void init_block()
{
     short *ptr_data;
     int i;
     *(unsigned int *)ptr_data=0x00700000;
     for(i=0;i<4600;i++)
	     *ptr_data++=0;
}
void init_config()
{
	pod(DEVICE_CONFIGURATION,0x200);
	pod(GPIO_DIRECTION1,0x00);
        pod(GPIO_DIRECTION2,0x00);
	*(unsigned long *)GPIO_DIRECTION3 &=~0x00000001;
        
}
void color_bar()
{
	short *ptr_data;
	int i,j;
       short *src_data=0x00700000;
	ptr_data=src_data;
//	int stride=640;
	for(i=0;i<480;i++)
	{	for(j=0;j<160;j++)
			*ptr_data++=0x7c00;
			  ptr_data+=480;}
	 ptr_data=src_data+160;
	 for(i=0;i<480;i++)
	{	for(j=0;j<160;j++)
			*ptr_data++=0x3e0;
			  ptr_data+=480;}
	  ptr_data=src_data+320;
	 for(i=0;i<480;i++)
	{	for(j=0;j<160;j++)
			*ptr_data++=0x1f;
			  ptr_data+=480;}
	ptr_data=src_data+480;
	 for(i=0;i<480;i++)
	{	for(j=0;j<160;j++)
			*ptr_data++=0x0;
			  ptr_data+=480;}

	                    

}

⌨️ 快捷键说明

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