您的位置 首页 电源

怎么让TCC89x支撑480×272的分辨率

//=====================================================================//TITLE:// 如何让TCC89x支持480×272

//=====================================================================

//TITLE:

// 怎么让TCC89x支撑480×272的分辨率

//AUTHOR:

// norains

//DATE:

// Friday 01-April-2011

//Environment:

// Visual Studio 2005

// Windows CE 6.0

// Telechips TCC8900

//=====================================================================

TCC89x是功能强大的多媒体CPU,其默许支撑的分辨率为800×480。假如运用的屏刚好是该分辨率,那么全部都很简单,但假如是别的的分辨率,比方480×272,那么就需求动一番脑力了。

好吧,下面咱们就来看看怎么设置480×272这个分辨率吧!

一般来说,涉及到设置的问题,咱们一般习惯于翻开Magellan.bat文件。这次当然也不破例,咱们在其中看到有如下的代码段:

@REM *************************************************************

@REM * Display Setting

@REM * RGB888 or RGB565 ex)set RGB888=1

@REM * Display Height ex)set LCDHEIGHT=1E0

@REM * Display Width ex)set LCDWIDTH=320

@REM *************************************************************

set RGB565=1

set LCDHEIGHT=1E0

set LCDWIDTH=320

是不是意味着只需修正LCDHEIGHT和LCDWIDTH就能够完成480×272的分辨率了呢?很惋惜,假如你设置了,而且编译了体系,会发现全部让你很绝望,全部都是仍旧。在评论下一步怎么去弄之前,咱们先看看LCDHEIGHT和LCDWIDTH终究影响到了哪里。

用软件查找,发现该环境变量在Platform.reg中有界说运用,如下所示:

[HKEY_LOCAL_MACHINE/Drivers/Display/Magellan/CONFIG]

DisplayDll=Display.dll

LCD_Width=dword:$(LCDWIDTH)

LCD_Height=dword:$(LCDHEIGHT)

但实践上,这个界说是没有任何含义的。由于注册表LCD_Width和LCD_Height这两个数值,会在WinCE跑起来之后,被Display驱动设置回800×480。

消除经过修正Magellan.bat来到达改变分辨率的主意,咱们仍是先实打实地从头开端怎么进行设置吧。在开端之前,咱们必需求清晰一点,从广义上来说,显现分为两个部分,一个是bootloader,另一个则是WinCE开端跑起来之后。

首先是bootloader,这儿需求修正的是./Src/BOOT/lcd.h文件。要修正的有两个当地,先开刀的是lcd_cfg这个数组。咱们需求将lcd_cfg[0]设置为所用屏的参数,在这儿先给出一个样本,假如实践运用的屏与此不同,咱们可自行修正:

[cpp] view plaincopystatic lcd_cfg_t lcd_cfg[3] =

{

// [A0481A 4.3 Color TFT LCD ]

{480, 272, 8, 10, 1, 1, 41, 1, 1, 0xC, 60 },

// [CLAA104XA01CW 104 Color TFT LCD (LVDS)]

{1024, 768, 1, 1, 1, 36, 1, 1, 318, 0xC, 60},

// [HT121WX2-103 121 Color TFT LCD (LVDS)]

{1280, 800, 1, 1, 3, 20, 1, 10, 150, 0xC, 60 },

};

然后还有DISP_WIDTH和DISP_HEIGHT这两个数值。假如懒得费事,能够直接在文件的最终undef这两个宏,然后再从头设置,如下所示:

[cpp] view plaincopy#undef DISP_WIDTH

#undef DISP_HEIGHT

#define DISP_WIDTH 480

#define DISP_HEIGHT 272

假如数值的设置和实践的屏共同的话,那么现在编译boot并烧录,应该现已能看到正常的480×272的界面了。

接下来需求弄的便是WinCE的部分。正如前面所说的,Display驱动会主动调用SetMode(0)函数,或许这样会给咱们这样一个感觉,只需修正SetMode函数的调用就能够了。但实践上这主意是不可行的,由于该函数的调用是封装在Telechips的自带的某个lib中,咱们是无法更改的。其实,咱们完全能够不必理睬代码。默许不是调用Mode 0么?咱们只需更改Display Mode 0的数值即可。也便是说,咱们能够翻开platform.reg文件,将LCD_Width0和LCD_Height0别离设置为480和272即可,如下所示:

[HKEY_LOCAL_MACHINE/Drivers/Display/Magellan/CONFIG]

LCD_Width0=dword:1E0 ;480

LCD_Height0=dword:110 ;272

编译体系,将NK.ROM烧录到板子,能够发现进入WinCE后的界面现已全部正常了。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/321542.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部