📄 lcd_test.c
字号:
else if ( i >= uNofPixel/8*7 && i < uNofPixel/8*8) *(u32*)(uLcdFbAddr+i*4) = uColor[7];
}
LCD_Start();
Disp("Window %d (Background) Is Displayed\n", (int)eBgWin);
Disp("Enter Any Key To Exit.\n");
UART_Getc();
}
static void Palette(void)
{
u32 uColor[16];
u32 uHSz, uVSz, uNofPixel;
int i;
bIsRev = false;
bIsAllWin = false;
LCD_ChangePaletteClk(1);
Disp("Window 0 Palette RAM Test. \n");
if(LCD_CheckPaletteRAM(WIN0) == true)
Disp("Window 0 Palette RAM W/R OK.\n");
else
Disp("Window 0 Palette RAM W/R Fail!\n");
Disp("Window 1 Palette RAM Test. \n");
if(LCD_CheckPaletteRAM(WIN1) == true)
Disp("Window 1 Palette RAM W/R OK.\n");
else
Disp("Window 1 Palette RAM W/R Fail!\n");
LCD_ChangePaletteClk(0);
LCD_InitDISPC(ePalBpp, uLcdFbAddr, eBgWin, false);
LCD_SetWinOnOff(1, eBgWin);
LCD_GetFrmSz(&uHSz, &uVSz, eBgWin);
LCD_SetPaletteCtrl(ePalDataBpp, eBgWin);
GLIB_Init(uLcdFbAddr, uHSz, uVSz, ePalBpp);
GLIB_SetPalDataFormat(ePalDataBpp);
LCD_Start();
///////////////////////////////////////////////////////////
// Palette Data BPP
if (ePalDataBpp == RGB16)
{
uColor[0] = 0x0; // Black
uColor[1] = 0xffff; // White
uColor[2] = 0x1f<<0; // Blue
uColor[3] = (0x1f<<11)|(0x3f<<6); // Yellow
uColor[4] = (0x1f<<11)|(0x1f<<0); // Magenta
uColor[5] = (0x3f<<6)|(0x1f<<0); // Cyan
uColor[6] = 0x1f<<11; // Red
uColor[7] = (0x23<<6)|(0x1f<<0); // Cyan2
uColor[8] = (0x07<<11)|(0x15<<0); // Magenta1
uColor[9] = (0x18<<11)|(0x17<<6); // Yellow1
uColor[10] = 0x7777; // Gray
uColor[11] = 0x3f<<6; // Green
uColor[12] = (0x03<<11)|(0x1f<<0); // Magenta2
uColor[13] = (0x1f<<11)|(0x1a<<6); // Yellow2
uColor[14] = (0x3f<<6)|(0x16<<0); // Cyan2
uColor[15] = (0x10<<11)|(0x1d<<6)|(0x1f<<0); // Gray2
}
///////////////////////////////////////////////////////////
// Palette Depth
if (ePalBpp == PAL8)
{
Disp("Palette 8bpp Test. \n");
LCD_ChangePaletteClk(1);
GLIB_GetPalDataFormat(C_RED, &uColor[0]);
LCD_SetPaletteData(C_RED, uColor[0], eBgWin);
GLIB_GetPalDataFormat(C_GREEN, &uColor[0]);
LCD_SetPaletteData(C_GREEN, uColor[0], eBgWin);
GLIB_GetPalDataFormat(C_BLUE, &uColor[0]);
LCD_SetPaletteData(C_BLUE, uColor[0], eBgWin);
GLIB_GetPalDataFormat(C_CYAN, &uColor[0]);
LCD_SetPaletteData(C_CYAN, uColor[0], eBgWin);
GLIB_GetPalDataFormat(C_MAGENTA, &uColor[0]);
LCD_SetPaletteData(C_MAGENTA, uColor[0], eBgWin);
GLIB_GetPalDataFormat(C_YELLOW, &uColor[0]);
LCD_SetPaletteData(C_YELLOW, uColor[0], eBgWin);
GLIB_GetPalDataFormat(C_BLACK, &uColor[0]);
LCD_SetPaletteData(C_BLACK, uColor[0], eBgWin);
GLIB_GetPalDataFormat(C_WHITE, &uColor[0]);
LCD_SetPaletteData(C_WHITE, uColor[0], eBgWin);
LCD_ChangePaletteClk(0);
GLIB_DrawPattern(uHSz, uVSz);
LCD_Trigger();
}
else if (ePalBpp == PAL4)
{
Disp("Palette 4bpp Test. \n");
LCD_ChangePaletteClk(1);
for (i=0; i<16; i++)
LCD_SetPaletteData(i, uColor[i], eBgWin);
LCD_ChangePaletteClk(0);
uNofPixel = uHSz*uVSz/8;
for (i=0; i<uNofPixel; i++)
{
if ( i < uNofPixel/16) *(u32*)(uLcdFbAddr+i*4) = 0x0;
else if ( i >= uNofPixel/16 && i < uNofPixel/16*2) *(u32*)(uLcdFbAddr+i*4) = 0x11111111;
else if ( i >= uNofPixel/16*2 && i < uNofPixel/16*3) *(u32*)(uLcdFbAddr+i*4) = 0x22222222;
else if ( i >= uNofPixel/16*3 && i < uNofPixel/16*4) *(u32*)(uLcdFbAddr+i*4) = 0x33333333;
else if ( i >= uNofPixel/16*4 && i < uNofPixel/16*5) *(u32*)(uLcdFbAddr+i*4) = 0x44444444;
else if ( i >= uNofPixel/16*5 && i < uNofPixel/16*6) *(u32*)(uLcdFbAddr+i*4) = 0x55555555;
else if ( i >= uNofPixel/16*6 && i < uNofPixel/16*7) *(u32*)(uLcdFbAddr+i*4) = 0x66666666;
else if ( i >= uNofPixel/16*7 && i < uNofPixel/16*8) *(u32*)(uLcdFbAddr+i*4) = 0x77777777;
else if ( i >= uNofPixel/16*8 && i < uNofPixel/16*9) *(u32*)(uLcdFbAddr+i*4) = 0x88888888;
else if ( i >= uNofPixel/16*9 && i < uNofPixel/16*10) *(u32*)(uLcdFbAddr+i*4) = 0x99999999;
else if ( i >= uNofPixel/16*10 && i < uNofPixel/16*11) *(u32*)(uLcdFbAddr+i*4) = 0xaaaaaaaa;
else if ( i >= uNofPixel/16*11 && i < uNofPixel/16*12) *(u32*)(uLcdFbAddr+i*4) = 0xbbbbbbbb;
else if ( i >= uNofPixel/16*12 && i < uNofPixel/16*13) *(u32*)(uLcdFbAddr+i*4) = 0xcccccccc;
else if ( i >= uNofPixel/16*13 && i < uNofPixel/16*14) *(u32*)(uLcdFbAddr+i*4) = 0xdddddddd;
else if ( i >= uNofPixel/16*14 && i < uNofPixel/16*15) *(u32*)(uLcdFbAddr+i*4) = 0xeeeeeeee;
else if ( i >= uNofPixel/16*15 && i < uNofPixel/16*16) *(u32*)(uLcdFbAddr+i*4) = 0xffffffff;
}
LCD_Trigger();
Disp("Enter Any Key To Exit Current Display.\n");
UART_Getc();
}
else if (ePalBpp == PAL2)
{
Disp("Palette 2bpp Test. \n");
LCD_ChangePaletteClk(1);
for (i=0; i<4; i++)
LCD_SetPaletteData(i, uColor[i], eBgWin);
LCD_ChangePaletteClk(0);
uNofPixel = uHSz*uVSz/16;
for (i=0; i<uNofPixel ; i++)
{
if ( i < uNofPixel/4) *(u32*)(uLcdFbAddr+i*4) = 0x0;
else if ( i >= uNofPixel/4 && i < uNofPixel/4*2) *(u32*)(uLcdFbAddr+i*4) = 0x55555555;
else if ( i >= uNofPixel/4*2 && i < uNofPixel/4*3) *(u32*)(uLcdFbAddr+i*4) = 0xaaaaaaaa;
else if ( i >= uNofPixel/4*3 && i < uNofPixel/4*4) *(u32*)(uLcdFbAddr+i*4) = 0xffffffff;
}
LCD_Trigger();
}
else // ePalBpp == 1Bpp
{
Disp("Palette 1bpp Test. \n");
LCD_ChangePaletteClk(1);
for (i=0; i<2; i++)
LCD_SetPaletteData(i, uColor[i], eBgWin);
LCD_ChangePaletteClk(0);
uNofPixel = uHSz*uVSz/32;
for (i=0; i<uNofPixel ; i++)
{
if ( i < uNofPixel/2) *(u32*)(uLcdFbAddr+i*4) = 0x0;
else if ( i >= uNofPixel/2 && i < uNofPixel/2*2) *(u32*)(uLcdFbAddr+i*4) = 0xffffffff;
}
LCD_Trigger();
}
Disp("Enter Any Key To Exit.\n");
UART_Getc();
}
static void Swap(void)
{
u32 uColor[16];
u32 uHSz, uVSz, uNofPixel;
u32 uFgAddr;
LCD_WINDOW eWinTemp0, eWinTemp1;
CSPACE eCspaceTemp;
int i;
#if (LCD_MODULE_TYPE== LTV350QV_RGB)
uHSz=320;
uVSz=240;
#elif (LCD_MODULE_TYPE == LTS222QV_CPU)
uHSz=240;
uVSz=320;
#elif (LCD_MODULE_TYPE == LTP700WV_RGB ||LCD_MODULE_TYPE ==LTE480WV_RGB)
uHSz=800;
uVSz=480;
#elif (LCD_MODULE_TYPE == LTV300GV_RGB)
uHSz=640;
uVSz=480;
#else
Assert(0);
#endif
bIsRev = false;
bIsAllWin = false;
eWinTemp0 = eBgWin;
eWinTemp1 = eFgWin;
eCspaceTemp = ePalBpp;
eBgWin = WIN2;
eFgWin = WIN3;
ePalBpp = PAL4;
LCD_InitBase();
LCD_InitWin(ePalBpp, uHSz, uVSz, 0, 0, uHSz, uVSz*3/4, 0, 0, uLcdFbAddr, eBgWin, false);
LCD_SetWinOnOff(1, eBgWin);
LCD_GetFrmSz(&uHSz, &uVSz, eBgWin);
LCD_SetPaletteCtrl(ePalDataBpp, eBgWin);
GLIB_Init(uLcdFbAddr, uHSz, uVSz, ePalBpp);
GLIB_SetPalDataFormat(ePalDataBpp);
LCD_Start();
///////////////////////////////////////////////////////////
// Palette Data BPP
if (ePalDataBpp == RGB16)
{
uColor[0] = 0x0; // Black
uColor[1] = 0xffff; // White
uColor[2] = 0x1f<<0; // Blue
uColor[3] = (0x1f<<11)|(0x3f<<6); // Yellow
uColor[4] = (0x1f<<11)|(0x1f<<0); // Magenta
uColor[5] = (0x3f<<6)|(0x1f<<0); // Cyan
uColor[6] = 0x1f<<11; // Red
uColor[7] = (0x23<<6)|(0x1f<<0); // Cyan2
uColor[8] = (0x07<<11)|(0x15<<0); // Magenta1
uColor[9] = (0x18<<11)|(0x17<<6); // Yellow1
uColor[10] = 0x7777; // Gray
uColor[11] = 0x3f<<6; // Green
uColor[12] = (0x03<<11)|(0x1f<<0); // Magenta2
uColor[13] = (0x1f<<11)|(0x1a<<6); // Yellow2
uColor[14] = (0x3f<<6)|(0x16<<0); // Cyan2
uColor[15] = (0x10<<11)|(0x1d<<6)|(0x1f<<0); // Gray2
}
////////////////////////////////////////////////////////////////////////////////////////////////////
Disp("Byte Swap Test. \n");
LCD_ChangePaletteClk(1);
for (i=0; i<16; i++)
LCD_SetPaletteData(i, uColor[i], eBgWin);
LCD_ChangePaletteClk(0);
LCD_SetByteSwap(SWAP_BIT_DISABLE, SWAP_BYTE_ENABLE, SWAP_HALFWORD_DISABLE, eBgWin);
uNofPixel = uHSz*uVSz/8;
for (i=0; i<uNofPixel; i++)
{
if(i<uNofPixel/16*4) *(u32*)(uLcdFbAddr+i*4) = 0x22;
else if ( i >= uNofPixel/16*4 && i < uNofPixel/16*8) *(u32*)(uLcdFbAddr+i*4) = 0x33;
else if ( i >= uNofPixel/16*8 && i < uNofPixel/16*12) *(u32*)(uLcdFbAddr+i*4) = 0x44;
else if ( i >= uNofPixel/16*12 && i < uNofPixel/16*16) *(u32*)(uLcdFbAddr+i*4) = 0x0;
}
LCD_GetFbEndAddr(&uFgAddr, eBgWin);
LCD_InitWin(ePalBpp, uHSz, uVSz, 0, 0, uHSz, uVSz/4, 0, uVSz*3/4, uFgAddr, eFgWin, false);
LCD_SetWinOnOff(1, eFgWin);
LCD_GetFrmSz(&uHSz, &uVSz, eFgWin);
LCD_SetPaletteCtrl(ePalDataBpp, eFgWin);
GLIB_Init(uFgAddr, uHSz, uVSz, ePalBpp);
GLIB_SetPalDataFormat(ePalDataBpp);
LCD_ChangePaletteClk(1);
uNofPixel = uHSz*uVSz/8;
for (i=0; i<16; i++)
LCD_SetPaletteData(i, uColor[i], eFgWin);
LCD_ChangePaletteClk(0);
LCD_SetByteSwap(SWAP_BIT_DISABLE, SWAP_BYTE_DISABLE, SWAP_HALFWORD_DISABLE, eFgWin);
for (i=0 ; i<uNofPixel/16*4; i++)
{
*(u32*)(uFgAddr+i*4) = 0x11000000;
}
Disp("Enter Any Key To Exit Current Display. (BYTE SWAP)\n");
UART_Getc();
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
Disp("HW Swap Test. \n");
LCD_ChangePaletteClk(1);
for (i=0; i<16; i++)
LCD_SetPaletteData(i, uColor[i], eBgWin);
LCD_ChangePaletteClk(0);
LCD_SetByteSwap(SWAP_BIT_DISABLE, SWAP_BYTE_DISABLE, SWAP_HALFWORD_ENABLE, eBgWin);
uNofPixel = uHSz*uVSz/8;
for (i=0; i<uNofPixel; i++)
{
if(i<uNofPixel/16*4) *(u32*)(uLcdFbAddr+i*4) = 0x22;
else if ( i >= uNofPixel/16*4 && i < uNofPixel/16*8) *(u32*)(uLcdFbAddr+i*4) = 0x33;
else if ( i >= uNofPixel/16*8 && i < uNofPixel/16*12) *(u32*)(uLcdFbAddr+i*4) = 0x44;
else if ( i >= uNofPixel/16*12 && i < uNofPixel/16*16) *(u32*)(uLcdFbAddr+i*4) = 0x0;
}
Disp("Enter Any Key To Exit Current Display. (HW SWAP)\n");
UART_Getc();
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
Disp("Bit Swap Test. \n");
LCD_ChangePaletteClk(1);
for (i=0; i<16; i++)
LCD_SetPaletteData(i, uColor[i], eBgWin);
LCD_ChangePaletteClk(0);
LCD_SetByteSwap(SWAP_BIT_ENABLE, SWAP_BYTE_DISABLE, SWAP_HALFWORD_DISABLE, eBgWin);
uNofPixel = uHSz*uVSz/8;
for (i=0; i<uNofPixel; i++)
{
if(i<uNofPixel/16*4) *(u32*)(uLcdFbAddr+i*4) = 0x80000000;
else if ( i >= uNofPixel/16*4 && i < uNofPixel/16*8) *(u32*)(uLcdFbAddr+i*4) = 0x80000000;
else if ( i >= uNofPixel/16*8 && i < uNofPixel/16*12) *(u32*)(uLcdFbAddr+i*4) = 0x80000000;
else if ( i >= uNofPixel/16*12 && i < uNofPixel/16*16) *(u32*)(uLcdFbAddr+i*4) = 0x0;
}
Disp("Enter Any Key To Exit Current Display. (BIT SWAP)\n");
UART_Getc();
////////////////////////////////////////////////////////////////////////////////////////////////////
eBgWin = eWinTemp0;
eFgWin = eWinTemp1;
ePalBpp = eCspaceTemp;
}
static void VDMABurstLength(void)
{
u32 j;
u32 uHSz, uVSz;
BURST_LENGTH eBurstLen;
FIFO_INT_LEVEL eFifoIntLevel;
FIFO_INT_SEL eFifoIntSel;
bIsRev = false;
bIsAllWin = false;
eFifoIntLevel = FIFO_EMPTY;
INTC_SetVectAddr(NUM_LCD0, Isr_LCD_FifoEmptyInt);
for(j=0;j<3;j++)
{
if(j==0)
{
eBurstLen = BURST_16WORD;
Disp("\nVDMA Burst 16 Word.");
}
else if(j==1)
{
eBurstLen = BURST_8WORD;
Disp("\nVDMA Burst 8 Word.");
}
else if(j==2)
{
eBurstLen = BURST_4WORD;
Disp("\nVDMA Burst 4 Word.");
}
LCD_InitDISPC(eBgBpp, uLcdFbAddr, eBgWin, false);
LCD_SetBurstLength(eBurstLen, eBgWin);
LCD_SetWinOnOff(1, eBgWin);
LCD_GetFrmSz(&uHSz, &uVSz, eBgWin);
GLIB_InitInstance(uLcdFbAddr, uHSz, uVSz, eBgBpp);
GLIB_DrawPattern(uHSz, uVSz);
eFifoIntSel=
(eBgWin == WIN0) ? FIFO_INT_WIN0 :
(eBgWin == WIN1) ? FIFO_INT_WIN1 :
(eBgWin == WIN2) ? FIFO_INT_WIN2 :
(eBgWin == WIN3) ? FIFO_INT_WIN3 : FIFO_INT_WIN4;
//Disp("Background: WINDOW %d\n", (int)eBgWin);
LCD_InitInt(LCD_FIFO_INT, eLcdCpuifInt, eFifoIntLevel, eFifoIntSel, FINT_BACKPORCH);
LCD_EnableInt();
INTC_Enable(NUM_LCD0);
LCD_Start();
while(!(UART_Getc()));
LCD_DisableInt();
INTC_Disable(NUM_LCD0);
Disp("\n");
}
}
static void WvgaDis(void)
{
u32 uHSz, uVSz;
u32 i, j, k;
bIsRev = false;
bIsAllWin = false;
Disp("Enter Any Key To Test Simple Display\n");
UART_Getc();
LCD_InitDISPC(RGB24, uLcdFbAddr, eBgWin, false);
LCD_GetFrmSz(&uHSz, &uVSz, eBgWin);
GLIB_InitInstance(uLcdFbAddr, uHSz, uVSz, RGB24);
LCD_SetWinOnOff(1, eBgWin);
k=0;
for(i=0; i<uVSz; i++)
for(j=0; j<uHSz; j++)
GLIB_PutPixel2(j, i, pSmileAgain[k++]);
/*
LCD_GetFbEndAddr(&uFbEndAddr, WIN0);
LCD_InitWin(RGB24, uHSz, uVSz, 0, 0, uHSz, uVSz, 0, 0, uFbEndAddr, WIN1, false);
LCD_SetWinOnOff(1, WIN1);
LCD_GetFrmSz(&uHSz, &uVSz, WIN1);
GLIB_InitInstance(uFbEndAddr, uHSz, uVSz, WIN1);
GLIB_DrawPattern2(uHSz, uVSz);
LCD_SetBlendingType(PER_PLANE, ALPHA0_PLANE, WIN1);
LCD_SetAlpha(0x7, 0x7, 0x7, 0x0, 0x0, 0x0, WIN1);
*/
LCD_Start();
Disp("Window %d (Background) Is Displayed\n", (int)eBgWin);
Disp("Enter Any Key To Exit.\n");
UART_Getc();
}
static void ParallelBGR(void)
{
u32 uHSz, uVSz, uNofPixel;
u32 uColor[16];
u32 i;
bIsRev = false;
bIsAllWin = false;
#if (LCD_MODULE_TYPE== LT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -