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

📄 lcd_v16c6448ac.c

📁 2440 开发板的测试程序。包括uart,iic,lcd
💻 C
📖 第 1 页 / 共 2 页
字号:
				while ( x1 <= x2 )
				{
					PutPixel( x1 , y1 , color );
					if ( e > 0 )
					{
						y1 -= 1;e -= dx;
					}	
					x1 += 1;
					e += dy;
				}
			}
			else		// 7/8 octant
			{
				e = dx - dy / 2;
				while ( y1 >= y2 )
				{
					PutPixel( x1 , y1 , color );
					if ( e > 0 )
					{
						x1 += 1;e -= dy;
					}	
					y1 -= 1;
					e += dx;
				}
			}
		}
	}
	else //dx<0
	{
		dx = -dx;		//dx=abs(dx)
		if ( dy >= 0 ) // dy>=0
		{
			if ( dx >= dy ) // 4/8 octant
			{
				e = dy - dx / 2;
				while ( x1 >= x2 )
				{
					PutPixel( x1 , y1 , color );
					if ( e > 0 )
					{
						y1 += 1;e -= dx;
					}	
					x1 -= 1;
					e += dy;
				}
			}
			else		// 3/8 octant
			{
				e = dx - dy / 2;
				while ( y1 <= y2 )
				{
					PutPixel( x1 , y1 , color );
					if ( e > 0 )
					{
						x1 -= 1;e -= dy;
					}	
					y1 += 1;
					e += dx;
				}
			}
		}
		else		   // dy<0
		{
			dy = -dy;   // dy=abs(dy)

			if ( dx >= dy ) // 5/8 octant
			{
				e = dy - dx / 2;
				while ( x1 >= x2 )
				{
					PutPixel( x1 , y1 , color );
					if ( e > 0 )
					{
						y1 -= 1;e -= dx;
					}	
					x1 -= 1;
					e += dy;
				}
			}
			else		// 6/8 octant
			{
				e = dx - dy / 2;
				while ( y1 >= y2 )
				{
					PutPixel( x1 , y1 , color );
					if ( e > 0 )
					{
						x1 -= 1;e -= dy;
					}	
					y1 -= 1;
					e += dx;
				}
			}
		}
	}
}

/**************************************************************
在LCD屏幕上画一个矩形
**************************************************************/
static void Glib_Rectangle( int x1 , int y1 , int x2 , int y2 , int color )
{
	Glib_Line( x1 , y1 , x2 , y1 , color );
	Glib_Line( x2 , y1 , x2 , y2 , color );
	Glib_Line( x1 , y2 , x2 , y2 , color );
	Glib_Line( x1 , y1 , x1 , y2 , color );
}

/**************************************************************
在LCD屏幕上用颜色填充一个矩形
**************************************************************/
static void Glib_FilledRectangle( int x1 , int y1 , int x2 , int y2 , int color )
{
	int i;

	for ( i = y1; i <= y2; i++ )
		Glib_Line( x1 , i , x2 , i , color );
}

/**************************************************************
在LCD屏幕上指定坐标点画一个指定大小的图片
**************************************************************/
static void Paint_Bmp( int x0 , int y0 , int h , int l , unsigned char bmp[] )
{
	int x, y;
	U32 c;
	int p = 0;

	for ( y = y0 ; y < l ; y++ )
	{
		for ( x = x0 ; x < h ; x++ )
		{
			c = bmp[p + 1] | ( bmp[p] << 8 ) ;

			if ( ( ( x0 + x ) < SCR_XSIZE_TFT_640480 ) && ( ( y0 + y ) < SCR_YSIZE_TFT_640480 ) )
				LCD_BUFER[y0 + y][x0 + x] = c ;

			p = p + 2 ;
		}
	}
}

/**************************************************************
**************************************************************/
void Lcd_Tft_V16C6448AC_Init( void )
{
	Lcd_Init();
	LcdBkLtSet( 70 ) ;
	Lcd_PowerEnable( 0 , 1 );
	Lcd_EnvidOnOff( 1 );		//turn on vedio

	Lcd_ClearScr( 0xffff );		//fill all screen with some color
#define LCD_BLANK		12
#define C_UP		( LCD_XSIZE_TFT_640480 - LCD_BLANK*2 )
#define C_RIGHT		( LCD_XSIZE_TFT_640480 - LCD_BLANK*2 )
#define V_BLACK		( ( LCD_YSIZE_TFT_640480 - LCD_BLANK*4 ) / 6 )
	Glib_FilledRectangle( LCD_BLANK , LCD_BLANK , ( LCD_XSIZE_TFT_640480 - LCD_BLANK ) ,
		( LCD_YSIZE_TFT_640480 - LCD_BLANK ) , 0x0000 );		//fill a Rectangle with some color

	Glib_FilledRectangle( ( LCD_BLANK * 2 ) , ( LCD_BLANK * 2 + V_BLACK * 0 ) , ( C_RIGHT ) ,
		( LCD_BLANK * 2 + V_BLACK * 1 ) , 0x001f );		//fill a Rectangle with some color
	Glib_FilledRectangle( ( LCD_BLANK * 2 ) , ( LCD_BLANK * 2 + V_BLACK * 1 ) , ( C_RIGHT ) ,
		( LCD_BLANK * 2 + V_BLACK * 2 ) , 0x07e0 );		//fill a Rectangle with some color
	Glib_FilledRectangle( ( LCD_BLANK * 2 ) , ( LCD_BLANK * 2 + V_BLACK * 2 ) , ( C_RIGHT ) ,
		( LCD_BLANK * 2 + V_BLACK * 3 ) , 0xf800 );		//fill a Rectangle with some color
	Glib_FilledRectangle( ( LCD_BLANK * 2 ) , ( LCD_BLANK * 2 + V_BLACK * 3 ) , ( C_RIGHT ) ,
		( LCD_BLANK * 2 + V_BLACK * 4 ) , 0xffe0 );		//fill a Rectangle with some color
	Glib_FilledRectangle( ( LCD_BLANK * 2 ) , ( LCD_BLANK * 2 + V_BLACK * 4 ) , ( C_RIGHT ) ,
		( LCD_BLANK * 2 + V_BLACK * 5 ) , 0xf81f );		//fill a Rectangle with some color
	Glib_FilledRectangle( ( LCD_BLANK * 2 ) , ( LCD_BLANK * 2 + V_BLACK * 5 ) , ( C_RIGHT ) ,
		( LCD_BLANK * 2 + V_BLACK * 6 ) , 0x07ff );		//fill a Rectangle with some color

	Glib_Line( LCD_BLANK , LCD_BLANK , ( LCD_XSIZE_TFT_640480 - LCD_BLANK ) , ( LCD_YSIZE_TFT_640480 - LCD_BLANK ) ,
		0x0000 ) ;
	Glib_Line( LCD_BLANK , ( LCD_YSIZE_TFT_640480 - LCD_BLANK ) , ( LCD_XSIZE_TFT_640480 - LCD_BLANK ) , LCD_BLANK ,
		0x0000 ) ;

	//Paint_Bmp( 0, 0, 240, 320, xyx_240_320 ) ;
}

void Lcd_Tft_V16C6448AC_Test( void )
{
	Uart_Printf( "\nTest LTS350Q1_PE1 (TFT LCD)!\n" );

	Lcd_ClearScr( ( 0x00 << 11 ) | ( 0x00 << 5 ) | ( 0x00 ) )  ;		//clear screen
	Uart_Printf( "\nLCD clear screen is finished! press any key to continue!\n" );
	Uart_Getch() ;		//wait uart input

	Lcd_ClearScr( ( 0x1f << 11 ) | ( 0x3f << 5 ) | ( 0x1f ) )  ;		//clear screen
	Uart_Printf( "LCD clear screen is finished! press any key to continue!\n" );
	Uart_Getch() ;		//wait uart input

	Lcd_ClearScr( ( 0x00 << 11 ) | ( 0x00 << 5 ) | ( 0x1f ) )  ;		//clear screen
	Uart_Printf( "LCD clear screen is finished! press any key to continue!\n" );
	Uart_Getch() ;		//wait uart input

	Lcd_ClearScr( ( 0x00 << 11 ) | ( 0x3f << 5 ) | ( 0x00 ) )  ;		//clear screen
	Uart_Printf( "LCD clear screen is finished! press any key to continue!\n" );
	Uart_Getch() ;		//wait uart input

	Lcd_ClearScr( ( 0x1f << 11 ) | ( 0x00 << 5 ) | ( 0x00 ) )  ;		//clear screen
	Uart_Printf( "LCD clear screen is finished! press any key to continue!\n" );
	Uart_Getch() ;		//wait uart input

	Lcd_ClearScr( ( 0x00 << 11 ) | ( 0x3f << 5 ) | ( 0x1f ) )  ;		//clear screen
	Uart_Printf( "LCD clear screen is finished! press any key to continue!\n" );
	Uart_Getch() ;		//wait uart input

	Lcd_ClearScr( ( 0x1f << 11 ) | ( 0x00 << 5 ) | ( 0x1f ) )  ;		//clear screen
	Uart_Printf( "LCD clear screen is finished! press any key to continue!\n" );
	Uart_Getch() ;		//wait uart input

	Lcd_ClearScr( ( 0x1f << 11 ) | ( 0x3f << 5 ) | ( 0x00 ) )  ;		//clear screen
	Uart_Printf( "LCD clear screen is finished! press any key to continue!\n" );
	Uart_Getch() ;		//wait uart input

	Lcd_ClearScr( 0xffff );		//fill all screen with some color
#define LCD_BLANK		12
#define C_UP		( LCD_XSIZE_TFT_640480 - LCD_BLANK*2 )
#define C_RIGHT		( LCD_XSIZE_TFT_640480 - LCD_BLANK*2 )
#define V_BLACK		( ( LCD_YSIZE_TFT_640480 - LCD_BLANK*4 ) / 6 )
	Glib_FilledRectangle( LCD_BLANK , LCD_BLANK , ( LCD_XSIZE_TFT_640480 - LCD_BLANK ) ,
		( LCD_YSIZE_TFT_640480 - LCD_BLANK ) , 0x0000 );		//fill a Rectangle with some color

	Glib_FilledRectangle( ( LCD_BLANK * 2 ) , ( LCD_BLANK * 2 + V_BLACK * 0 ) , ( C_RIGHT ) ,
		( LCD_BLANK * 2 + V_BLACK * 1 ) , 0x001f );		//fill a Rectangle with some color
	Glib_FilledRectangle( ( LCD_BLANK * 2 ) , ( LCD_BLANK * 2 + V_BLACK * 1 ) , ( C_RIGHT ) ,
		( LCD_BLANK * 2 + V_BLACK * 2 ) , 0x07e0 );		//fill a Rectangle with some color
	Glib_FilledRectangle( ( LCD_BLANK * 2 ) , ( LCD_BLANK * 2 + V_BLACK * 2 ) , ( C_RIGHT ) ,
		( LCD_BLANK * 2 + V_BLACK * 3 ) , 0xf800 );		//fill a Rectangle with some color
	Glib_FilledRectangle( ( LCD_BLANK * 2 ) , ( LCD_BLANK * 2 + V_BLACK * 3 ) , ( C_RIGHT ) ,
		( LCD_BLANK * 2 + V_BLACK * 4 ) , 0xffe0 );		//fill a Rectangle with some color
	Glib_FilledRectangle( ( LCD_BLANK * 2 ) , ( LCD_BLANK * 2 + V_BLACK * 4 ) , ( C_RIGHT ) ,
		( LCD_BLANK * 2 + V_BLACK * 5 ) , 0xf81f );		//fill a Rectangle with some color
	Glib_FilledRectangle( ( LCD_BLANK * 2 ) , ( LCD_BLANK * 2 + V_BLACK * 5 ) , ( C_RIGHT ) ,
		( LCD_BLANK * 2 + V_BLACK * 6 ) , 0x07ff );		//fill a Rectangle with some color

	Glib_Line( LCD_BLANK , LCD_BLANK , ( LCD_XSIZE_TFT_640480 - LCD_BLANK ) , ( LCD_YSIZE_TFT_640480 - LCD_BLANK ) ,
		0x0000 ) ;
	Glib_Line( LCD_BLANK , ( LCD_YSIZE_TFT_640480 - LCD_BLANK ) , ( LCD_XSIZE_TFT_640480 - LCD_BLANK ) , LCD_BLANK ,
		0x0000 ) ;
	Uart_Printf( "Any Key To Next!\n" ) ;  Uart_Getch() ;		//Any Key To Next

	/*
		Paint_Bmp(0,0,640,480, girl0_640_480);		//paint a bmp
	   	Uart_Printf( "LCD paint a bmp, please look! press any key to continue! \n" );
		Uart_Getch() ;		//wait uart input
		Paint_Bmp(0,0,640,480, girl1_640_480);		//paint a bmp
	   	Uart_Printf( "LCD paint a bmp, please look! press any key to continue! \n" );
		Uart_Getch() ;		//wait uart input
		
		Paint_Bmp(0,0,640,480, flower1_640_480);		//paint a bmp
	   	Uart_Printf( "LCD paint a bmp, please look! press any key to continue! \n" );
		Uart_Getch() ;		//wait uart input
		Paint_Bmp(0,0,640,480, girl2_640_480);		//paint a bmp
	   	Uart_Printf( "LCD paint a bmp, please look! press any key to continue! \n" );
		Uart_Getch() ;		//wait uart input
	*/

	//Paint_Bmp( 0 , 0 , 640 , 480 , girl3_640_480 );		//paint a bmp
	//Uart_Printf( "LCD paint a bmp, please look! press any key to continue! \n" );
	//Uart_Getch() ;		//wait uart input
}
//*************************************************************

⌨️ 快捷键说明

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