[ZLG-ARM] 请教关于LCD刷屏刷不干净问题

[复制链接]
3522|13
 楼主| wlsui 发表于 2007-5-1 19:53 | 显示全部楼层 |阅读模式
我现在做毕业设计用的是MagicARM2200实验箱上的LCM,控制器是S1D13503,LCD为5.2英寸320*240,彩色(触摸功能没用上)<br />我开始写了个前后台程序,用于自己的GUI,显示效果是正常的,但我将他复制到uC/OS-II中时却出现了屏刷不干净问题,绘图时有些点能正常<br /><br />显示,有些点则好象没有变化,造成很多麻点。具体效果如下:(正常显示)<br />
 楼主| wlsui 发表于 2007-5-1 19:57 | 显示全部楼层

上面那个是前后台情况下正常显示:

由于上传的图片大小最大只能300K,所以我对图片进行了裁剪<br />下面这个是在uC/OS-II下的情况,无法正常显示:
 楼主| wlsui 发表于 2007-5-1 20:03 | 显示全部楼层

AND:

这两个程序的绘图部分完全是一样的,而且在程序中除了绘图之外也没有其它的功能。<br />不过这好象与操作系统没有多大的关系,因为之前也出现过这种情况,就是同一个程序,之前运行LCD显示没有问题,但有的时候却会出现跟上面一样的问题(即屏刷不干净),请问这是什么原因呢?<br />请各位指教!
xxqarm 发表于 2007-5-2 09:15 | 显示全部楼层

时序问题吧,可能时序太快了

  
mohanwei 发表于 2007-5-2 09:59 | 显示全部楼层

时钟滴答的影响?

  
 楼主| wlsui 发表于 2007-5-2 10:38 | 显示全部楼层

想过

如果说时序太快了,但为什么在前后台情况下正常呢?一样的运行速率啊<br />至于时钟节拍,我开始也想是不是由于时钟节拍的中断影响了屏幕的刷新,但我在绘图时关了中断也一样!
 楼主| wlsui 发表于 2007-5-2 11:57 | 显示全部楼层

现在可以了

现在可以了<br />是操作时序太快了,但问题是在前后台下&nbsp;Fcclk&nbsp;为&nbsp;(Fosc&nbsp;*&nbsp;6),其中Fosc为11059200,即&nbsp;Fcclk&nbsp;60多MHz,操作完全正常,而在操作系统下Fcclk&nbsp;为&nbsp;(Fosc&nbsp;*&nbsp;3)时就不行了,不能正常显示,当Fcclk&nbsp;为&nbsp;(Fosc&nbsp;*&nbsp;2)时才能正常显示.在操作系统下绘制图形时我已经将中断关了.<br />请问这是为什么呢?
foyyof 发表于 2007-5-2 12:56 | 显示全部楼层

总线配置?

  
 楼主| wlsui 发表于 2007-5-2 19:25 | 显示全部楼层

foyyof :

谢谢您的提醒.<br />现在问题已经解决了,就是总路线配置的问题.说到底,也就是操作太快了<br />在前后台的启动代码中关于BCFG3的配置的定义如下(S1D13503在BANK3):<br />BCFG_CS3&nbsp;&nbsp;&nbsp;EQU&nbsp;&nbsp;&nbsp;(BCFG_16DEF&nbsp;|&nbsp;(0x07&lt&lt00)&nbsp;|&nbsp;(0x0f&lt&lt05)&nbsp;|&nbsp;(0x0f&lt&lt11))&nbsp;<br />其中BCFG_16DEF为16位总线的定义,(0x07&lt&lt00)指CCLK空闲周期数为0x07+1,<br />而在uC/OS-II下启动代码中关于BCFG3的配置的定义为:<br />BCFG_CS3&nbsp;&nbsp;&nbsp;&nbsp;EQU&nbsp;&nbsp;&nbsp;&nbsp;(BCFG_16DEF&nbsp;|&nbsp;(0x01&lt&lt00)&nbsp;|&nbsp;(0x03&lt&lt05)&nbsp;|&nbsp;0x03&lt&lt11))&nbsp;<br />CCLK空闲周期数仅为0x01+1,读写访问的长度也仅为0x03+3,这样就导致了操作总线过快,高于S1D13503的最快速度<br />现在我将前后台的启动代码BCFG3的配置值拷贝到uC/OS-II下就可以了,Fcclk改到6*11059200&nbsp;LCD也能正常显示了<br />谢谢大家热情的帮助!<br />接着做我的毕业设计,再过三个星期就要交论文了
foyyof 发表于 2007-5-2 19:57 | 显示全部楼层

^^:

  
zlgARM 发表于 2007-5-3 09:49 | 显示全部楼层

吴*穗

祝贺你解决了问题。楼主是ZLG3+1班的学生。
zlgARM 发表于 2007-5-3 09:56 | 显示全部楼层

吴*穗

前后台的Fcclk不要设置得那么高啊,最好不要超过60MHz。
 楼主| wlsui 发表于 2007-5-3 10:43 | 显示全部楼层

呵呵

设置那么高主要是希望在读取ADC的数据时能够得到较高的速度<br />之前我测试过Fcclk好象到了80多MHz也不怎么出问题,不过到90多MHz程序就马上跑飞了<br />所以我将Fcclk设置为60多MHz,虽然手册上说最高只能为60MHz<br />不过设置这么高确实有比较大的风险,最怕的就是到到时候程序出现问题了却不知道是什么原因,看来在现阶段还是低点好
 楼主| wlsui 发表于 2007-5-3 10:46 | 显示全部楼层

AND:

还有建议将模板ARM&nbsp;Executable&nbsp;Image&nbsp;for&nbsp;UCOSII(MaigcARM2200)里的BCFG3配置改下,这样当别人拿这个模板来写关于LCD的程序时就不会出现这种问题了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

263

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部