阅读:1284回复:3
求助:2410上在640x480,8bpp tft上wince显示问题
我将wince bsp中的s3c2410disp.cpp中的颜色深度改为了8;
在setpalette函数中设置了256色调色板,网上很少有文章介绍这个调色板寄存器的使用(基地址为0X4D000400),我也不知道调色板的设置对不对,代码如下: SCODE S3C2410DISP::SetPalette(const PALETTEENTRY *source, USHORT firstEntry, USHORT numEntries) { WORD *p; DWORD i; RETAILMSG(0, (TEXT("S3C2410DISP::SetPalette\r\n"))); if (firstEntry < 0 || firstEntry + numEntries > 256 || source == NULL) { return E_INVALIDARG; } PaletteMem = (WORD)VirtualAlloc(0, 512, MEM_RESERVE, PAGE_NOACCESS); if (PaletteMem == NULL) { RETAILMSG(0, (TEXT("S3C2410DISP::VirtualAlloc palette failed!!\r\n"))); return 0; } else if (!VirtualCopy((PVOID)PaletteMem, (PVOID)PALETTE_BASE, 512, PAGE_READWRITE | PAGE_NOCACHE)) { RETAILMSG(0, (TEXT("Palette is not mapped\n\r"))); VirtualFree((PVOID)PaletteMem, 0, MEM_RELEASE); return 0; } p = (WORD *)PaletteMem; for(i=0;i<256;i++) { p = (source.peBlue) & 0x1f | ((source.peGreen) & 0x3f) << 5 | ((source.peRed) & 0x1f) << 11;//设置调色板寄存器 } return S_OK; } 在cfw.c文件中,将LCDCON1设置为TFT型/8位象素,将LCDSADDR2中的LCD_XSIZE_TFT*LCD_YSIZE_TFT*2改为LCD_XSIZE_TFT*LCD_YSIZE_TFT;但没有修改其他显示时序参数,不知对不对 现在我把NK文件下到2410开发板上后,屏幕黑屏;我弄了N久了,麻烦各位大侠指点迷津 |
|
沙发#
发布于:2007-11-08 11:54
还有一个地方需要设置,cfw.c里对LCD控制器配置,行场同步信号的那几个参数,这个和你的特定LCD屏相关
|
|
板凳#
发布于:2007-11-08 12:19
16bit与8bit显示的行同步这些信号不同吗?我的sharp屏的datasheet好像没有256色显示的参数
|
|
地板#
发布于:2007-11-08 12:22
我bsp里面有这款屏在640x480 16bit模式下的驱动,并且能正常工作,所以我就没有改显示屏的时序
|
|