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

📄 lcd.c

📁 三星2413芯片的测试代码,对进行驱动开发很有帮助.
💻 C
📖 第 1 页 / 共 3 页
字号:
            PutPixel(i,j,((int)flower8bpp[k++]));	
            
    printf("CSTN 256 color mode test 2. Press any key!\n");
    getchar();  

    Glib_ClearScr(0, MODE_CSTN_8BIT);
	Glib_Rectangle(0,0,319,239, 0xe0);
	Glib_Rectangle(320,0,639,239, 0x1c);
	Glib_Rectangle(0,240,319,479, 0x3);
	Glib_Rectangle(320,240,639,479, 0xff);

	Glib_Line(0,239,319,0,0xff);
	Glib_Line(320,0,639,239,0x3);
	Glib_Line(0,240,319,479,0x1c);
	Glib_Line(320,479,639,240,0xe0);
	
	Glib_Line(0,0,319,239,0xff);
	Glib_Line(320,239,639,0,0x3);
	Glib_Line(0,479,319,240,0x1c);
	Glib_Line(320,240,639,479,0xe0);

	printf("Virtual Screen Test(CSTN 256-color). i: Upper, m: Lower, j: Left, l: right!\n");
	printf("Press Enter to exit!\n");
    
	MoveViewPort(MODE_CSTN_8BIT);
	Lcd_MoveViewPort(0,0,MODE_CSTN_8BIT);      

    Lcd_PowerEnableCstn(0);
    Lcd_CstnOnOff(0); // Disable ENVID Bit and GPB5 output 
    Lcd_Port_Return();

}

void Test_Lcd_Cstn_12Bit(void)
{
    int i,j,k;
	
    printf("[CSTN 4K COLOR(12bit/1pixel) LCD TEST]\n");
	
	Lcd_Port_Init();
    Lcd_Init(MODE_CSTN_12BIT);
    Glib_Init(MODE_CSTN_12BIT);
    Lcd_PowerEnableCstn(1);
    Lcd_CstnOnOff(1); // Enable ENVID Bit and GPB5 output
 
    Glib_ClearScr(0, MODE_CSTN_12BIT);

    Glib_FilledRectangle(0,0,159,119,0xf000);    
    Glib_FilledRectangle(160,0,319,119,0x700);    
    Glib_FilledRectangle(0,120,159,239,0x1e);    
    Glib_FilledRectangle(160,120,319,239,0xffff);
    
    printf("CSTN 4K color mode test 1. Press any key!\n");
    getchar();  
    

    k=0;
    for(j=0;j<240;j++)
        for(i=0;i<320;i++)
            PutPixel(i,j,((int)flower16bpp[k++]));	
            
    printf("CSTN 4K color mode test 2. Press any key!\n");
    getchar();      

    Glib_ClearScr(0, MODE_CSTN_12BIT);
	Glib_Rectangle(0,0,319,239, 0xf000);
	Glib_Rectangle(320,0,639,239, 0x780);
	Glib_Rectangle(0,240,319,479, 0x1e);
	Glib_Rectangle(320,240,639,479, 0xf79e);

	Glib_Line(0,239,319,0,0xf79e);
	Glib_Line(320,0,639,239,0x1e);
	Glib_Line(0,240,319,479,0x780);
	Glib_Line(320,479,639,240,0xf000);
	
	Glib_Line(0,0,319,239,0xf79e);
	Glib_Line(320,239,639,0,0x1e);
	Glib_Line(0,479,319,240,0x780);
	Glib_Line(320,240,639,479,0xf000);

	printf("Virtual Screen Test(CSTN 4K-color). i: Upper, m: Lower, j: Left, l: right!\n");
	printf("Press Enter to exit!\n");
    
	MoveViewPort(MODE_CSTN_12BIT);
	Lcd_MoveViewPort(0,0,MODE_CSTN_12BIT);  

    Lcd_PowerEnableCstn(0);
    Lcd_CstnOnOff(0); // Disable ENVID Bit and GPB5 output 
    Lcd_Port_Return();

}

void Test_Lcd_Cstn_16Bit(void)
{
    int i,j,k;
	
    printf("[CSTN 64K COLOR(16bit/1pixel) LCD TEST]\n");
	
	Lcd_Port_Init();
    Lcd_Init(MODE_CSTN_16BIT);
    Glib_Init(MODE_CSTN_16BIT);
    Lcd_PowerEnableCstn(1);
    Lcd_CstnOnOff(1); // Enable ENVID Bit and GPB5 output
 
    
    Glib_FilledRectangle(0,0,159,119,0xf800);    
    Glib_FilledRectangle(160,0,319,119,0x7e0);    
    Glib_FilledRectangle(0,120,159,239,0x1f);    
    Glib_FilledRectangle(160,120,319,239,0xffff);
    
    printf("CSTN 64K color mode test 1. Press any key!\n");
    getchar();  
    

    k=0;
    for(j=0;j<240;j++)
        for(i=0;i<320;i++)
            PutPixel(i,j,((int)flower16bpp[k++]));	
            
    printf("CSTN 64K color mode test 2. Press any key!\n");
    getchar();  
    
    Glib_ClearScr(0, MODE_CSTN_16BIT);
	Glib_Rectangle(0,0,319,239, 0xf800);
	Glib_Rectangle(320,0,639,239, 0x7e0);
	Glib_Rectangle(0,240,319,479, 0x1f);
	Glib_Rectangle(320,240,639,479, 0xffff);

	Glib_Line(0,239,319,0,0xffff);
	Glib_Line(320,0,639,239,0x1f);
	Glib_Line(0,240,319,479,0x7e0);
	Glib_Line(320,479,639,240,0xf800);
	
	Glib_Line(0,0,319,239,0xffff);
	Glib_Line(320,239,639,0,0x1f);
	Glib_Line(0,479,319,240,0x7e0);
	Glib_Line(320,240,639,479,0xf800);

	printf("Virtual Screen Test(CSTN 64K-color). i: Upper, m: Lower, j: Left, l: right!\n");
	printf("Press Enter to exit!\n");
    
	MoveViewPort(MODE_CSTN_16BIT);
	Lcd_MoveViewPort(0,0,MODE_CSTN_16BIT);     
    
    Lcd_PowerEnableCstn(0);
    Lcd_CstnOnOff(0); // Disable ENVID Bit and GPB5 output 
    Lcd_Port_Return();

}


void Test_Lcd_Stn_1Bit(void)
{
    int i,j,k;
    

    printf("[STN mono COLOR(1bit/1pixel) LCD TEST]\n");
	
	Lcd_Port_Init();
    Lcd_Init(MODE_STN_1BIT);
    Glib_Init(MODE_STN_1BIT);
    Lcd_PowerEnableCstn(1);
    Lcd_CstnOnOff(1); // Enable ENVID Bit and GPB5 output
 
    Glib_ClearScr(0, MODE_STN_1BIT);

    Glib_FilledRectangle(0,0,159,239,0x0);    
    Glib_FilledRectangle(160,0,319,239,0x1); 
	printf("mono color mode test 1. Press any key!\n");
    getchar();  


    Glib_FilledRectangle(0,0,159,119,0x0);    
    Glib_FilledRectangle(160,0,319,119,0x1);    
    Glib_FilledRectangle(0,120,159,239,0x1);    
    Glib_FilledRectangle(160,120,319,239,0x0);    
 
	printf("mono color mode test 1. Press any key!\n");
    getchar();  
    
	Glib_ClearScr(0, MODE_STN_1BIT);
	Glib_Line(0,0,319,239,0x1);
	Glib_Line(0,239,319,0,0x1);
	Glib_Rectangle(0,0, 319,239, 0x1);
	printf("mono color mode test 2. Press any key!\n");
	getchar();
    
    Glib_ClearScr(0, MODE_STN_1BIT);
	Glib_Rectangle(0,0,319,239, 0x1);
	Glib_Rectangle(320,0,639,239, 0x1);
	Glib_Rectangle(0,240,319,479, 0x1);
	Glib_Rectangle(320,240,639,479, 0x1);
	
	Glib_Line(0,239,319,0,0x1);
	Glib_Line(320,0,639,239,0x1);
	Glib_Line(0,240,319,479,0x1);
	Glib_Line(320,479,639,240,0x1);
	
	Glib_Line(0,0,319,239,0x1);
	Glib_Line(320,239,639,0,0x1);
	Glib_Line(0,479,319,240,0x1);
	Glib_Line(320,240,639,479,0x1);
	
	printf("Virtual Screen Test(STN mono). i: Upper, m: Lower, j: Left, l: right!\n");
	printf("Press Enter to exit!\n");
	
	MoveViewPort(MODE_STN_1BIT);
	Lcd_MoveViewPort(0,0,MODE_STN_1BIT);
    
    Lcd_PowerEnableCstn(0);
    Lcd_CstnOnOff(0); // Disable ENVID Bit and GPB5 output 
    Lcd_Port_Return();
}

void Test_Lcd_Stn_2Bit(void)
{
    int i,j,k;

    printf("[STN 4 gray COLOR(2bit/1pixel) LCD TEST]\n");
	
	Lcd_Port_Init();
    Lcd_Init(MODE_STN_2BIT);
    Glib_Init(MODE_STN_2BIT);
    Lcd_PowerEnableCstn(1);
    Lcd_CstnOnOff(1); // Enable ENVID Bit and GPB5 output
 
    Glib_ClearScr(0, MODE_STN_2BIT);

    Glib_FilledRectangle(0,0,159,119,0x0);    
    Glib_FilledRectangle(160,0,319,119,0x1);    
    Glib_FilledRectangle(0,120,159,239,0x2);    
    Glib_FilledRectangle(160,120,319,239,0x3);    
 
	printf("STN 4 gray mode test 1. Press any key!\n");
    getchar();  
    
	Glib_ClearScr(0, MODE_STN_2BIT);
	Glib_Line(0,0,319,239,0x3);
	Glib_Line(0,239,319,0,0x3);
	Glib_Rectangle(0,0, 319,239, 0x3);
	printf("STN 4 gray mode test 2. Press any key!\n");
	getchar();
	
    Glib_ClearScr(0, MODE_STN_2BIT);
	Glib_Rectangle(0,0,319,239, 0x1);
	Glib_Rectangle(320,0,639,239, 0x2);
	Glib_Rectangle(0,240,319,479, 0x3);
	Glib_Rectangle(320,240,639,479, 0x1);
	
	Glib_Line(0,239,319,0,0x1);
	Glib_Line(320,0,639,239,0x2);
	Glib_Line(0,240,319,479,0x3);
	Glib_Line(320,479,639,240,0x1);
	
	Glib_Line(0,0,319,239,0x1);
	Glib_Line(320,239,639,0,0x2);
	Glib_Line(0,479,319,240,0x3);
	Glib_Line(320,240,639,479,0x1);
	
	printf("Virtual Screen Test(STN 4 gray). i: Upper, m: Lower, j: Left, l: right!\n");
	printf("Press Enter to exit!\n");
	
	MoveViewPort(MODE_STN_2BIT);
	Lcd_MoveViewPort(0,0,MODE_STN_2BIT);
    
    Lcd_PowerEnableCstn(0);
    Lcd_CstnOnOff(0); // Disable ENVID Bit and GPB5 output 
    Lcd_Port_Return();
}

void Test_Lcd_Stn_4Bit(void)
{
    int i,j,k;   

	
    printf("[STN 16 gray COLOR(1bit/1pixel) LCD TEST]\n");
	
	Lcd_Port_Init();
    Lcd_Init(MODE_STN_4BIT);
    Glib_Init(MODE_STN_4BIT);
    Lcd_PowerEnableCstn(1);
    Lcd_CstnOnOff(1); // Enable ENVID Bit and GPB5 output
 
    Glib_ClearScr(0, MODE_STN_4BIT);

    k=0;
    for(j=0;j<240;j=j+60)
        for(i=0;i<320;i=i+80) {
			Glib_FilledRectangle(i,j,i+79,j+59,k++);
        }   
 
	printf("STN 16 gray mode test 1. Press any key!\n");
    getchar();
    
	Glib_ClearScr(0, MODE_STN_4BIT);
	Glib_Line(0,0,319,239,0xf);
	Glib_Line(0,239,319,0,0xf);
	Glib_Rectangle(0,0, 319,239, 0xf);
	printf("STN 16 gray mode test 2. Press any key!\n");
	getchar();   
	
    Glib_ClearScr(0, MODE_STN_4BIT);
	Glib_Rectangle(0,0,319,239, 0xf);
	Glib_Rectangle(320,0,639,239, 0xf);
	Glib_Rectangle(0,240,319,479, 0xf);
	Glib_Rectangle(320,240,639,479, 0xf);
	
	Glib_Line(0,239,319,0,0xf);
	Glib_Line(320,0,639,239,0xf);
	Glib_Line(0,240,319,479,0xf);
	Glib_Line(320,479,639,240,0xf);
	
	Glib_Line(0,0,319,239,0xf);
	Glib_Line(320,239,639,0,0xf);
	Glib_Line(0,479,319,240,0xf);
	Glib_Line(320,240,639,479,0xf);
	
	printf("Virtual Screen Test(STN 16 gray). i: Upper, m: Lower, j: Left, l: right!\n");
	printf("Press Enter to exit!\n");
	
	MoveViewPort(MODE_STN_4BIT);
	Lcd_MoveViewPort(0,0,MODE_STN_4BIT);	   
    
    Lcd_PowerEnableCstn(0);
    Lcd_CstnOnOff(0); // Disable ENVID Bit and GPB5 output 
    Lcd_Port_Return();
}

void Test_Lcd_Tft_16Bit_240320_IntFrame(void)
{
    int i,j,k;

	Lcd_EnvidOnOff(0);

	printf("Frame Interrupt Test!\n");
	printf("You can see toggling of GPH10 according to VSYNC\n");
	printf("Press any key to exit!\n");
	
	Lcd_Port_Init();    
	Lcd_PowerEnable(0, 1);
	Lcd_Init(MODE_TFT_16BIT_240320);
    
	Glib_Init(MODE_TFT_16BIT_240320);    
	Glib_ClearScr(0, MODE_TFT_16BIT_240320);


	rGPHCON = (rGPHCON & ~(0x3<<20))|(1<<20);
	
	pISR_LCD = (U32)IsrLcdFrame;		
	rLCDINTMSK = (1<<2|0<<1|1);
	rINTMSK &= ~BIT_LCD;
	
	Lcd_EnvidOnOff(1); 

	Glib_ClearScr(0, MODE_TFT_16BIT_240320);
	Glib_Rectangle(0,0,239,319,0x07e0);   
	Glib_FilledRectangle(0,0,20,20,65535);   
	Glib_Rectangle(220,300,239,319,65535);   
	Glib_Line(0,0,239,319,0x1f);
	Glib_Line(239,0,0,319,0xf800);
	getchar();

	rLCDINTMSK |= 0x3;
	rINTMSK |= BIT_LCD;
	Glib_ClearScr(0, MODE_TFT_16BIT_240320);
	Lcd_EnvidOnOff(0);
	Lcd_PowerEnable(0, 0);
	Lcd_Port_Return();
	
}

void Test_Lcd_Tft_16Bit_240320_IntFifo(void)
{
    int i,j,k;

	Lcd_EnvidOnOff(0);

	printf("Fifo Interrupt Test!\n");
	printf("Press any key to exit!\n");
	
	Lcd_Port_Init();    
	Lcd_PowerEnable(0, 1);
	Lcd_Init(MODE_TFT_16BIT_240320);
    
	Glib_Init(MODE_TFT_16BIT_240320);    
	Glib_ClearScr(0, MODE_TFT_16BIT_240320);

	
	Lcd_EnvidOnOff(1); 

	pISR_LCD = (U32)IsrLcdFifo;		
	rLCDINTMSK = (1<<2|1<<1|0);
	rINTMSK &= ~BIT_LCD;	
    

	Glib_ClearScr(0, MODE_TFT_16BIT_240320);
	Glib_Rectangle(0,0,239,319,0x07e0);   
	Glib_FilledRectangle(0,0,20,20,65535);   
	Glib_Rectangle(220,300,239,319,65535);   
	Glib_Line(0,0,239,319,0x1f);
	Glib_Line(239,0,0,319,0xf800);
	getchar();

	rLCDINTMSK |= 0x3;
	rINTMSK |= BIT_LCD;
	Glib_ClearScr(0, MODE_TFT_16BIT_240320);
	Lcd_EnvidOnOff(0);
	Lcd_PowerEnable(0, 0);
	Lcd_Port_Return();
	
}

void Test_Lcd_Tft_16Bit_240320_Swap(void)
{
    int i,j,k;
    unsigned char menuflag;

	Lcd_EnvidOnOff(0);

	printf("Swap Test!\n");
	
	Lcd_Port_Init();    
	Lcd_PowerEnable(0, 1);
	Lcd_Init(MODE_TFT_16BIT_240320);
    
	Glib_Init(MODE_TFT_16BIT_240320);    
	Glib_ClearScr(0, MODE_TFT_16BIT_240320);

	
	Lcd_EnvidOnOff(1); 

	Glib_ClearScr(0, MODE_TFT_16BIT_240320);
	Glib_Rectangle(0,0,239,319,0x07e0);   
	Glib_FilledRectangle(0,0,20,20,65535);   
	Glib_Rectangle(220,300,239,319,65535);   
	Glib_Line(0,0,239,319,0x1f);
	Glib_Line(239,0,0,319,0xf800);
	
	printf("h:half-word swap, b:byte-swap, d:swap diable, x:exit\n");
	while(1)
	{
		menuflag=getchar();
		if(menuflag=='h') 
		{
			rLCDCON5 |= 1;	
			printf("half-word swap is enabled\n");
		}
		else if(menuflag=='b')
		{
			rLCDCON5 |= (1<<1);	
			printf("byte swap is enabled\n");
		}
		else if(menuflag=='d') 
		{
			rLCDCON5 &= ~(0x3);	
			printf("swap is diabled\n");
		}
		else if(menuflag=='x') break;
	}
	
	Glib_ClearScr(0, MODE_TFT_16BIT_240320);
	Lcd_EnvidOnOff(0);
	Lcd_PowerEnable(0, 0);
	Lcd_Port_Return();
	
}

⌨️ 快捷键说明

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