5158|13

91

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

lcd控制器+tv编码器如何调整分辨率和颜色深度 [复制链接]

有一个开发板是s3c2440平台加上ch7026做TV编码器输出,800x600下输出稳定.现在我想降低分辨率却无法正常显示.请教:
1.我尝试修改了lcd控制器的寄存器值不成功,如有高手用过类似方案,给点提示
2.修改lcd分辨率是不是改那几个寄存器值就行了?
3.因为不是现成的lcd,没法得知具体参数的设置,有没有通用一点的设置方法,或者,效率高一点的尝试方法?
4.我的初衷是降低显示数据量,降低颜色深度会不会有点效果,那位能给个16色灰度的设置方法?

最新回复

问题基本解决,下周结贴  详情 回复 发表于 2009-3-19 11:25
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
mark
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
太想搞明白这些内容,没有先生们搞过吗,提点思路也好啊
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

4
 
你什么操作系统啊?是WinCE吗?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
是啊,liunx下能解决也可以参考的
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
2440一般用24bit,如果硬件这样接了,就没法改成16bit位宽了。

改分辨率,除了改分辨率寄存器,还需要改时钟寄存器。
在保持刷新频率不变的情况下,分辨率改变,就会造成行频、场频的改变,最终导致点频的改变。
还有前导、后导(front porch, back porch)都要细调。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

7
 
帮顶。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

8
 
帮顶
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
谢谢大家,这几个问题基本解决。我找到了vga的时序图,计算得出相关参数,分辨率已经修改,麻烦的是改分辨率后图像靠左上角(如果这部分能全屏就成功了),多余部分仍然有些影像(屏幕仍是800x600像素,可能是tv编码器闹得?),不知如何搞定。或者是显示缓冲区设大了?
请教原理:
1.什么时候开始读显示缓存?(OnPaint()?)
2.显示时序是不是行场都读完就结束了,还是读完全部缓冲区数据?
3.2440Lcd用到DMA了吗,如何工作的呢?

那位大侠帮忙推荐点资料,或者书名也行。唉,年纪大了,最近看屏幕稍微时间长点就会眼睛流泪。早知如此就不该当年废寝忘食打游戏。。。。。。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

10
 
可以去ARMINIT.C 里面看看。DMA通道都被谁用了!
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 8 楼 langfang_wh 的回复:
谢谢大家,这几个问题基本解决。我找到了vga的时序图,计算得出相关参数,分辨率已经修改,麻烦的是改分辨率后图像靠左上角(如果这部分能全屏就成功了),多余部分仍然有些影像(屏幕仍是800x600像素,可能是tv编码器闹得?),不知如何搞定。或者是显示缓冲区设大了?
请教原理:
1.什么时候开始读显示缓存?(OnPaint()?)
2.显示时序是不是行场都读完就结束了,还是读完全部缓冲区数据?
3.2440Lcd用到DMA了吗,如何工…

我汗。。。我的就是到不了左上角
1.读显示缓存我是在驱动视频端口的时候就再一直读写。你可以加写打印信息看看,哪个打印信息在不断的跑就可能是Buffer在不断的读写。至少我现在做的是这样看的
2.我理解是buffer缓冲区的。
3.DMA..我单从程序上看是用到了。不过我做的不是samsung的。但是原理是相似的。
哎。我现在就是不知道为什么显示区域离左边沿差个10个像素左右。而且怎么移动都不对。而且颜色有的时候正常有的时候反色或者是缺色。。快晕了。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

12
 
你可以试验下吧left坐标和top坐标修订下。。试试。。可能可以。
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

13
 
真郁闷,那天发的帖子怎么没上去!

2440lcd果然是用dma,显示地址正是dma设定的地址.
我想用虚拟屏,直接写现实缓冲区,可是以调整显示地址就死机,不知为何
        volatile LCDPreg* v_pLcdPRegs = (volatile LCDPreg*)VirtualAlloc(0, sizeof(LCDPreg), MEM_RESERVE, PAGE_NOACCESS);
        VirtualCopy((PVOID)v_pLcdPRegs, (PVOID)LCD_BASE, sizeof(LCDPreg), PAGE_READWRITE|PAGE_NOCACHE);
        v_pLcdPRegs->LCDSADDR1+=1;
        v_pLcdPRegs->LCDSADDR2+=1;
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

14
 
问题基本解决,下周结贴
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表