Genesis Sequoia Fli32626 多屏参切换编程方法(不掉电切换屏参).docx_第1页
Genesis Sequoia Fli32626 多屏参切换编程方法(不掉电切换屏参).docx_第2页
Genesis Sequoia Fli32626 多屏参切换编程方法(不掉电切换屏参).docx_第3页
Genesis Sequoia Fli32626 多屏参切换编程方法(不掉电切换屏参).docx_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Squoia FLi32626 多屏参切换编程方法通常,在用Sequoia参考软件编译生成的HEX文件中只包含一个屏参。即所使用的屏参已在HEX文件中固定,如果要更换屏参必须要更改软件,重新编译并烧入FLASH。这对具有较强文档管理水平的大公司来说,并不是问题,只要将所有的软件登记归档,并记录对应的屏的型号即可;但是对一些小公司而言,特别是在频繁更换屏的情况下,或是软件工程师换人的情况下,很容易造成混乱。这时,就希望把可能用到的所有屏的参数都集成一个软件中,生产时根据实际所使用的屏,通过菜单或串口来选择,并保存在NVRAM中。本文将讲解FLI32626不掉电情况下多屏参即时切换的软件编写方法。在参考软件中,运行时所使用的屏参是在panel.h 通过指定DEFAULT_PANEL来实现的。如使用LG 1080P的屏,则打开如下的宏定义即可:#define DEFAULT_PANELLG_1080P_LC370WU1如果要使用其它的屏参,则需要打开对应的宏定义并重新编译。那么如何将多个屏参都包含到一个软件中,并可即时切换呢?在参考软件中,已经给出了集成多屏参的方法,只不过需要在选择所需的屏参后关机并重新开机,新的屏参才会起作用。下面先来分析开机过程中屏参的调用流程。void ApplicationInit(void)/在panel.h中.AssignPanelData(0); / Initialize default panel data . BoardInit(); NvramCheck(); / Get all the UserPref values #ifdef MULTIPANEL_DATA_IN_ONE_HEX /This code is for supporting multipip panel data in single hex (Appstest 255 panel_id) / The calling of AssignPanelData() above only sets up the default panel since I2C / is not initialized. As a result, UserPrefPanelSelect is always zero at that moment. / Now after NvramCheck() is called, I2C is running and UserPrefPanelSelect carries / the saved panel ID. AssignPanelData(UserPrefPanelSelect); / DDDS Initialization (Per Panel) gm_DdsSetInitFreq(CLK_DDDS, (DWORD)gmv_OUTPUT_HTOTAL * gmv_OUTPUT_VTOTAL * gmvb_OutputFrameRate); / EDDS Initialization (108MHz) gm_DdsSetInitFreq(CLK_EDDS, FREQ_108MHz); #if (FEATURE_DECODER = TWO_DECODER) gm_DdsSetInitFreq(CLK_EDDS2, FREQ_108MHz); #endif / Freerun DDS gmvb_DDDSSourceChannel = gmvb_MainChannel; gm_SetDisplayFreeRun(); #endif在上述初始化过程中,首先调用AssignPanelData(0) 将CurrentPanelData指向DEFAULT_PANEL,即使用panel.h 中定义的缺省屏参。在NvramCheck()之后,有一个宏定义MULTIPANEL_DATA_IN_ONE_HEX, 如果定义了该宏(在system.h中),则将根据从NVRAM中取得的UserPrefPanelSelect,重新分配屏参:AssignPanelData(UserPrefPanelSelect);在正常开机时,可以通过遥控菜单或串口改变UserPrefPanelSelect的值,将该值保存到NVRAM中之后,关机再重新开机即可选用所选的屏参,参考appstest 255 指令如下:case Func255: SelectPanel(); break; void SelectPanel(void) InitNvram(); UserPrefPanelSelect = B_Param; SaveModeIndependentSettings(); for (i=1; PanelArrayi != NULL_PTR; i+) if (PanelArrayi = PanelArray) continue; / / For manually modified panel, search for panel ID based on userpreference / if (B_Param) if (PanelArrayi-ID = B_Param) CurrentPanelData = PanelArrayi; return; / / Otherwise, use default panel / else if (PanelArrayi-ID = DEFAULT_PANEL) CurrentPanelData = PanelArrayi; return; msg (Panel ID given is not supported);需要注意的是,如果要集成多屏参,除了要打开宏定义 MULTIPANEL_DATA_IN_ONE_HEX之外,还要确保要使用的屏参头文件已包含在软件中,否则在AssignPanelData(UserPrefPanelSelect)中将搜索不到所需的屏参,结果仍然使用缺省屏参。见下面两点:1. PanelArray 中必须有对应的屏参数据地址ROM gmt_PanelData * ROM PanelArray =NULL_PTR,/ Do not remove - place holder for default panel selected by PANEL definition&Panel_LG_XGA_LM150X06,&Panel_LG_XGA_LM150X06_VGA,&Panel_LG_WXGA_LM171W01,&Panel_LG_WXGA_LC171W03,&Panel_LG_WXGA_LC230W01,&Panel_LG_WXGA_LC300_W01,&Panel_LG_WXGA_LC320W01,&Panel_SAMSUNG_WXGA_LTM170W01,&Panel_SAMSUNG_SXGA_LTM170E4_L01,&Panel_SAMSUNG_UXGA_LTM213U4_L01,&Panel_LG_SXGA_LM190E01,&Panel_CUSTOMER_WXGA_PANEL_1,&Panel_CUSTOMER_WXGA_1366,&Panel_CUSTOMER_WXGA_DLP,&Panel_CUSTOMER_WXGA_720P,&Panel_LG_WXGA_LC171W03_VGA,&Panel_Sanyo_TM290WX_71N31,&Panel_AUO_WXGA_T315XW01,&Panel_LG_WXGA_LC200WX1,#if (FEATURE_1080P_PANEL = ENABLE)&Panel_1080P_AUO_T370HW01,&Panel_1080P_AUO_T370HW02,&Panel_1080P_CMO_V370H1_L01,&Panel_SAMSUNG_WUXGA_LTM240W1_L01,&Panel_LG_UXGA_LM201U03,&Panel_CUSTOMER_1080P_DVIOUT,&Panel_1080P_LG_LC370WU1,/27&Panel_1080P_IPS_AX094F002E,&Panel_SAMSUNG_1080P_LTA400HH_LH1,&Panel_LG_WSXGA_LM220WE1_TLD1,#endif&Panel_CRT_33K,&Panel_CRT_38K,&Panel_1080I,&Panel_LG_WXGA_LC370WX2,&Panel_CUSTOMER_720P_DVIOUT,&Panel_CUSTOMER_1080I_DVIOUT,&Panel_CUSTOMER_480P_DVIOUT,#ifdef VIDEO_WALL &Panel_HDMI_OUT_1080P60,/for VIDEO_WALL#endifNULL_PTR,/ Do not remove - place holder for end of list;2. Panel.h 中必须打开对应的宏定义/#define INCLUDE_LG_XGA_150X06/#define INCLUDE_LG_XGA_150X06_VGA#define INCLUDE_LG_WXGA_LM171W01#define INCLUDE_LG_WXGA_LC171W03/#define INCLUDE_LG_WXGA_LC171W03_VGA/#define INCLUDE_LG_WXGA_LC230W01/#define INCLUDE_LG_WXGA_LC300_W01/#define INCLUDE_LG_WXGA_LC320W01/#defineINCLUDE_LG_WXGA_LC370WX2 / 100/120 Hz panel/#define INCLUDE_SAMSUNG_WXGA_LTM170W01/#define INCLUDE_SAMSUNG_SXGA_LTM170E4_L01/#define INCLUDE_SAMSUNG_UXGA_LTM213U4_L01/#define INCLUDE_LG_SXGA_LM190E01/#define INCLUDE_Sanyo_TM290WX_71N31/#define INCLUDE_AUO_WXGA_T315XW01/#define INCLUDE_CUSTOMER_WXGA_PANEL_1/#define INCLUDE_CUSTOMER_WXGA_DLP/#define INCLUDE_CUSTOMER_WXGA_720P/#define INCLUDE_CUSTOMER_WXGA_1366/#define INCLUDE_LG_WXGA_LC200WX1#if (FEATURE_1080P_PANEL = ENABLE)#define INCLUDE_AUO_1080P_T370HW01/#define INCLUDE_AUO_1080P_T370HW02/#define INCLUDE_CMO_1080P_V370H1_L01/#define INCLUDE_SAMSUNG_WUXGA_LTM240W1_L01/#define INCLUDE_LG_UXGA_LM201U03/#define INCLUDE_CUSTOMER_1080P_DVIOUT#define INCLUDE_LG_1080P_LC370WU1/ #define INCLUDE_IPS_1080P_AX094F002E/#define INCLUDE_SAMSUNG_1080P_LTA400HH_LH1/#define INCLUDE_LG_WSXGA_LM220WE1_TLD1#endif/#define INCLUDE_CRT_33K/#define INCLUDE_CRT_38K/#define INCLUDE_1080I/#define INCLUDE_CUSTOMER_720P_DVIOUT/#define INCLUDE_CUSTOMER_1080I_DVIOUT/#define INCLUDE_CUSTOMER_480P_DVIOUT如上的定义中,只有红色的四个屏参可选中。上面讲述的是参考软件中可使用的多屏参切换方法,缺点是不能即时切换,切换之后必须先掉电再重新开机后才能看到效果。本文的目的是要实现不掉电情况下即时切换屏参,因此必须在参考软件的基础上做进一步的改动才行。在原始的SelectPanel(void)中,只实现了保存UserPrefPanelSelect,并改变CurrentPanelData指向的功能,但是并没有根据CurrentPanelData指向的屏参去更改显示的Timing, 因此自然看不到即时的变化效果。要想看到即时的屏参效果,就必须在SelectPanel(void)中 增加后续的动作,具体思路如下:void SelectPanel(BYTE PanelIndex) #ifdef MULTIPANEL_DATA_IN_ONE_HEX/1. 保存选择的屏参IDUserPrefPanelSelect = PanelIndex; SaveModeIndependentSettings();/2. 重新设定CurrentPanelData指向与HT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论