wmq123
驱动牛犊
驱动牛犊
  • 注册日期2005-06-14
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:4287回复:22

STN液晶驱动

楼主#
更多 发布于:2005-06-29 21:02
  请教各位大虾:STN和TFT的驱动有什么区别:能否提供一个STN驱动的例子!!,谢谢各位!!
我的邮箱:wmq@sanlian.com.cn
QQ:332065616
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-06-30 15:05
显示驱动和具体的显示器(屏)没关系三,只是不同的架构对操作硬件有影响。有的显示屏(模块)直接连到SOC的LCD控制器,有的又连到系统总线,有的在扩展总线(比如TFT一般都是单独的显示屏,通过RGB和同步信号等信号和显卡连接,你操作的实际是显卡,不关心显示屏)。
根据地的兄弟们,团结就是力量
wmq123
驱动牛犊
驱动牛犊
  • 注册日期2005-06-14
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-06-30 20:45
谢谢!!
我明白 了,还有个问题:HAL中的fw.c中对CPU的LCDCONTROL的配置和DRIVER中的DisplayInit及GPE中void S3C2410DISP::InitializeHardware (void)的配置,有什么区别和联系呢。
    我是新手,对GPE不是很了解,能指点指点或者应该看什么资料呢,帮助我看了,很迷茫。
有劳大虾了
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-07-05 15:29
初始化的工作在什么地方可以自由选择,没什么绝对标准,不过一般在驱动中的POWERUP里面做比较好,这样可以最大程度代码共享,驱动除了输出POWERUP的接口,也可以在启动时显示调用。

你可以看MSDN中关于显示驱动的帮助,并结合你的BSP的源代码看
根据地的兄弟们,团结就是力量
wmq123
驱动牛犊
驱动牛犊
  • 注册日期2005-06-14
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-07-07 15:43
在调试液晶屏驱动的时候串口出现了以下信息:
Windows CE Kernel for ARM (Thumb Enabled) Built on Mar 13 2003 at 22:52:56
ProcessorType=0920  Revision=0
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 8c201280

Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
rLCDCON1 : 1f9
rLCDCON2 : 109fc302
rLCDCON3 : 181df10
rLCDCON4 : d60
rLCDCON5 : 14809
rLCDSADDR1 : 18080000
rLCDSADDR2 : cb000
rLCDSADDR3 : 1e0
rLCDINTMSK : 3
rLPCSEL : 0
rTPAL : 0
SDMMC config current rGPGCON: ff95fdba
SDMMC config set rGPGCON: ffa5fdba
SDMMC config Init Done.
OEMInit Done...
Sp=ffffc7cc
OEMSetRealTime: Year: 2003, Month: 9, Day: 1, Hour: 12, Minute: 0, second: 0 rcnr=1h
OEMSetRealTime(register): Year: 3, Month: 9, Day: 1, Hour: 12, Minute: 0, second: 0 rcnr=1h
FMD::FMD_Init
Prescaler:2
384 clock
USB:OhcdPdd_Init
++InitializeOHCI
USB:*pIrq=11, *pioPortBase=0x2B0000
OHCD: MapIrq2SysIntr(11): 27
OHCD: Memory Object
--InitializeOHCI
+CS8900:DriverEntry
::: PBT_InitializeAddresses - Success
       charlie::SDIO::SDHOST::SDCSDCardDllEntry::DLL_PROCESS_ATTACH
::: SYSINTR_SDMMC    OEMInterruptDisable
::: SYSINTR_DMA0    OEMInterruptDisable
::: SYSINTR_SDMMC_CARD_DETECT    OEMInterruptEnable
::: SYSINTR_SDMMC_SDIO_INTERRUPT    OEMInterruptEnable
--S3C2410DISP::InitializeHardware
Data Abort: Thread=8fd8f9b0 Proc=8e026b08 'gwes.exe'
AKY=00000009 PC=03fc291c RA=033715e8 BVA=08150000 FSR=00000007
Data Abort: Thread=8fd8f9b0 Proc=8e026b08 'gwes.exe'
AKY=00000009 PC=00054a54 RA=0004cd04 BVA=08000008 FSR=00000007
  请问大虾这是什么原因呢?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-07-07 19:26
这个你要仔细看你的显示驱动啊,data abort肯定是访问不可访问的地址造成的,一般有两个可能:1.你用的地址没有经过合适的转换,在驱动中使用的地址必须是动态映射的虚拟地址,不能使用物理地址和内核使用的虚拟地址;2.一个进程的指针传到另外一个进程使用时需要转换。
根据地的兄弟们,团结就是力量
wmq123
驱动牛犊
驱动牛犊
  • 注册日期2005-06-14
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-07-09 09:10
谢谢斑竹!!
问题解决了,是虚拟内存不足造成的,虚拟内存扩大了4倍,就好了

不好意思,还有个问题请教如何把屏反转90度,我看到了在驱动程序里有
#ifdef ROTATE
       m_iRotate = DMDO_180;
       SetRotateParms();
#endif //ROTATE      

很菜的问题,我修改了m_iRotate = DMDO_180;的值但是没有反映,如何修改呢?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-07-11 15:32
这个要看你的驱动是怎么写的了,如果需要旋转,你还得实现几个成员函数:SetRotateParms,DynRotate等,还有其他一些函数里面也要加些代码,你可以参考三星那个bsp做
根据地的兄弟们,团结就是力量
wmq123
驱动牛犊
驱动牛犊
  • 注册日期2005-06-14
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-07-26 11:05
谢谢斑竹,最近在调试一个外接的硬件,好麻烦
          我就是用的三星的BSP,里面的函数都实现了,我把关于ROTATE的的条件编译的注释掉了,保留的只有跟ROTATE相关的选项,可是还不能实现反转,是什么问题呢?在CE系统里,还要有相关的设置么
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-07-26 13:49
你要的反转是什么效果?是系统管理,还是你要一切都是反的?如果是后者,其实你可以人为把显示缓冲的数据倒过来。如果是前者,有好几个地方都可以实现,应用里面可以旋转,驱动也可以,我没有试过驱动的旋转接口是不是很好地工作,兄弟只有试试看了。
根据地的兄弟们,团结就是力量
wmq123
驱动牛犊
驱动牛犊
  • 注册日期2005-06-14
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-07-31 08:50
谢谢斑竹:
     我的CSTN屏调好了,忙了将近一个周的时间,终于正常使用了,可以进行旋转了,但是DISPLAY。CPP里的一些函数的功能现在还是搞不明白,怎么能搞明白啊。现在这样的感觉:除了寄存器参数的设置,主要的是对显示的缓存进行按照自己所需求的设置,然后,在在DISPLAY。CPP里,对缓存里的数据进行相关的处理,不知道这样理解,对不对?  
panzhenjie
驱动牛犊
驱动牛犊
  • 注册日期2005-02-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望69点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-08-01 06:19
大哥,你是怎么实现ROTATE的啊?

我加了#define ROTATE以后什么效果都没有啊
panzhenjie
驱动牛犊
驱动牛犊
  • 注册日期2005-02-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望69点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-08-01 06:19
大哥,你是怎么实现ROTATE的啊?

我加了#define ROTATE以后什么效果都没有啊
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-08-01 16:31
要完全搞明白得费些功夫,看看DISPLAY得DDI函数怎么调用下层PDD的就会清楚很多,但是也只是一部分,这部分内容还是比较多的,特别设计DDRAW DSHOW等

PANZHENJIE在询问你怎么弄得,有空给他指点指点吧:)
根据地的兄弟们,团结就是力量
wmq123
驱动牛犊
驱动牛犊
  • 注册日期2005-06-14
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-08-03 20:03
不好意思,这两天没上网。
    再调试一个界面程序;我根据斑竹的建议也在看原代码,我的哪个程序是根据一个样本程序修改的,我可以把程序传过去,参考参考。不过现在我还没有完全搞懂,也在看。
   现在还有个问题:就是鼠标的焦点不准确,不知道调哪个函数
wmq123
驱动牛犊
驱动牛犊
  • 注册日期2005-06-14
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2005-08-03 20:08
不好意思,这两天没上网。
    再调试一个界面程序;我根据斑竹的建议也在看原代码,我的哪个程序是根据一个样本程序修改的,我可以把程序传过去,参考参考。不过现在我还没有完全搞懂,也在看。
   现在还有个问题:就是鼠标的焦点不准确,不知道调哪个函数
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2005-08-04 14:42
嗯,那panzhenjie,你有什么问题可以写信给wmq123请教
 
焦点问题你得调触摸屏驱动,一般的触摸屏都有误差,而且屏中间好些,越往两边差越多,在边缘的地方你可以修正这些坐标值
根据地的兄弟们,团结就是力量
wmq123
驱动牛犊
驱动牛犊
  • 注册日期2005-06-14
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2005-08-07 08:35
斑竹:
   我的液晶屏是STN的,没有用触摸屏,鼠标的焦点不准,没办法使用鼠标,但是靠两边比较准确。但是在TFT中,修改屏没有遇到这种情况。斑竹指点!
   那位老兄还没跟我联系,我们可以多交流交流。
panzhenjie
驱动牛犊
驱动牛犊
  • 注册日期2005-02-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望69点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2005-08-07 15:55
两位老大,不好意思,上这个论坛的时候漏看这个贴了,今天才看到~~~

这个液晶显示屏确实麻烦,我现在先不考虑什么旋转的问题了

一块240*320的TFT是显示的时候出现叠影,明显影响画制,也不知道要改些什么

一块640*480的TFT是显示的时候出现闪烁,改了些地方(应该是刷新率吧~~~),可是没效果,正郁闷那
panzhenjie
驱动牛犊
驱动牛犊
  • 注册日期2005-02-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望69点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2005-08-07 15:59
我做的液晶屏的触摸屏到都不错,改了改驱动,再校准之后记下参数,基本点哪是哪

可惜不能用鼠标,一个usb光电鼠标插上去,鼠标不亮,汗,估计电源的驱动能力太弱了
上一页
游客

返回顶部