- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Squoia FLi32626 多屏参切换编程方法 通常,在用Sequoia参考软件编译生成的HEX文件中只包含一个屏参。即所使用的屏参已在HEX文件中固定,如果要更换屏参必须要更改软件,重新编译并烧入FLASH。这对具有较强文档管理水平的大公司来说,并不是问题,只要将所有的软件登记归档,并记录对应的屏的型号即可;但是对一些小公司而言,特别是在频繁更换屏的情况下,或是软件工程师换人的情况下,很容易造成混乱。这时,就希望把可能用到的所有屏的参数都集成一个软件中,生产时根据实际所使用的屏,通过菜单或串口来选择,并保存在NVRAM中。本文将讲解FLI32626不掉电情况下多屏参即时切换的软件编写方法。 在参考软件中,运行时所使用的屏参是在panel.h 通过指定DEFAULT_PANEL来实现的。如使用LG 1080P的屏,则打开如下的宏定义即可: #define DEFAULT_PANEL LG_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(UserPrefPanelSele
文档评论(0)