9041|19

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教:LCD怎样‘横屏’转‘竖屏’ [复制链接]

我用的是2450,问一下LCD横屏转竖屏,驱动程序里除了在头文件处修改分辨率外,还要修改什么地方呢?

我只修改了头文件处定义的分辨率的情况下,屏幕变窄了(部分屏幕黑色没图象),竖直方向靠下的部分没被显示出来。

不知道在哪(几)个文件里的函数里修改能实现真正的‘横’转‘竖’的效果呢(就是LCD刚好被竖屏桌面填充完整)。

请高手指点一下...........谢谢

最新回复

看看驱动程序怎么实现的吧,从修改驱动入手是最好的办法   详情 回复 发表于 2009-7-28 09:15
点赞 关注

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
gdi直接支持屏幕旋转,不需要该驱动。
当然了,在驱动中旋转也是可以的
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
有对应的API接口!!!
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
修改驱动
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
这个问题,也是多次出现的问题

如果能总结一下多好啊!
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

7
 
了解一下
 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(初级)

8
 
在头文件定义Rotate,在SOURCE里添加Rotate=1,s3c2410x_lcd.CPP中改成下面这样
#ifdef ROTATE
        m_iRotate = 90;
        SetRotateParms();
#endif //ROTATE       

其他地方不用改了
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

9
 
重写软件。
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(初级)

10
 
最好修改驱动
要不做应用的会累死
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 7 楼 licsyhzs 的回复:
在头文件定义Rotate,在SOURCE里添加Rotate=1,s3c2410x_lcd.CPP中改成下面这样
#ifdef ROTATE
m_iRotate = 90;
SetRotateParms();
#endif //ROTATE

其他地方不用改了

我记得 不只这2 个地方要改吧。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 10 楼 aaa_tnt 的回复:
引用 7 楼 licsyhzs 的回复:
在头文件定义Rotate,在SOURCE里添加Rotate=1,s3c2410x_lcd.CPP中改成下面这样
#ifdef ROTATE
m_iRotate = 90;
SetRotateParms();
#endif //ROTATE

其他地方不用改了

我记得 不只这2 个地方要改吧。


至少在2440下这样是可行的
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

13
 
可以直接重写LCD的驱动,把LCD缓冲区的数据看成二维矩阵,做矩阵旋转之后写进buffer就好了,这个方法比较笨,但是肯定可以实现这个功能
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

14
 
如果驱动支持旋转的话  只需要在注册表中改一下就可以了在注册表中寻找
   
; Settings to rotate the screen by 0 degrees clockwise upon download
[HKEY_LOCAL_MACHINE\System\GDI\Rotation]
    "Angle"=dword:0 改成你要旋转的角度  90  180 等等
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

15
 
注意是 16进制  如果90度则为5a
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

16
 
顶啊
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

17
 
严重支持楼上帮顶!!!
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

18
 
引用 11 楼 iusarg 的回复:
引用 10 楼 aaa_tnt 的回复:
引用 7 楼 licsyhzs 的回复:
在头文件定义Rotate,在SOURCE里添加Rotate=1,s3c2410x_lcd.CPP中改成下面这样
#ifdef ROTATE
m_iRotate = 90;
SetRotateParms();
#endif //ROTATE

其他地方不用改了

我记得 不只这2 个地方要改吧。


至少在2440下这样是可行的

我记得我以前改2440的时候 还加了句
((GPESurfRotate *)m_pPrimarySurface)->SetRotation(m_nScreenWidth, m_nScreenHeight, m_iRotate);
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

19
 
我的显示屏是480*272的。
我修改了注册表的HKEY_LOCAL_MACHINE\System\GDI\Rotation中"Angle"=dword:0值,改成a5(90度)。屏幕是旋转了90度,但屏幕的下半段(应该是273--480像素段)被刷到上半段去了,就是下半段与上半段重叠了,而273--480像素段显示黑色没有图像。想问一下应该要修改哪个参数??

另外想问一下:
#define SHP430_HOZVAL         
#define SHP430_LINEVAL       
#define LCD_WIDTH       
#define LCD_HEIGHT         
#define LCD_XSIZE_TFT  
#define LCD_YSIZE_TFT
上面这几个宏定义都分别表示显示屏的哪个参数??谢谢




 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

20
 
看看驱动程序怎么实现的吧,从修改驱动入手是最好的办法

引用 18 楼 larryk 的回复:
我的显示屏是480*272的。
我修改了注册表的HKEY_LOCAL_MACHINE\System\GDI\Rotation中"Angle"=dword:0值,改成a5(90度)。屏幕是旋转了90度,但屏幕的下半段(应该是273--480像素段)被刷到上半段去了,就是下半段与上半段重叠了,而273--480像素段显示黑色没有图像。想问一下应该要修改哪个参数??

另外想问一下:
#define SHP430_HOZVAL
#define SHP430_LINEVAL
#define LCD_WIDTH
#define LCD_HEIGHT
#define LCD_XSIZE_TFT
#define LCD_YSIZE_TFT
上面这几个宏定义都分别表示显示屏的哪个参数??谢谢



 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表