5111|11

83

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

ce 电源 触摸屏程序如何实现 [复制链接]

用的arm9 2440
在上用evc做了个程序
现在我想实现:
1.触摸屏校准
2.设置触摸屏的背光时间
3.捕获触摸屏背光关闭(做些操作);捕获触摸屏背光亮起(做些操作)
4.arm的cpu休眠唤醒

请各位高手给些提示,说明,最好有些程序....
如有描述不清之处请指出.
谢谢

最新回复

这是什么触摸屏啊?我用的很简单啊,贴在显示器上,插上USB接口就行了~~~~ 大家可以去看一下演示:点击进入  详情 回复 发表于 2010-3-26 22:52
点赞 关注

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
.触摸屏校准  设计:
一般情况下,校准程序只需要校准一次即可,所获得的校准系数存储在注册表中。但是电阻式触摸屏会发生偏移,所以在过一段时间后会发现触摸屏不准了,这是正常现象,只需要重新校准就可以了。
        触摸屏校准流程如下:
        调用TouchPanelEnable函数开始屏幕采样;
        调用TouchPanelGetDeviceCaps函数请求采样点个数;
        对每个采样点,执行下面的步骤:
?        调用TouchPanelGetDeviceCaps函数获得校准坐标;
?        在返回的坐标处绘制十字准线;
?        调用TouchPanelReadCalibrationPoint函数获得校准数据。
调用TouchPanelSetCalibration函数获得校准系数。
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢,找到段程序直接调系统的校准程序,可以了,,,
typedef  BOOL  (WINAPI *_TouchCalibrate)();

HINSTANCE  hinstance = LoadLibrary(_T("coredll.dll"));
        if (hinstance==NULL)
        {
                MessageBox(_T("加载校准函数过程失败"),_T("错误"),MB_OK);
                return;
        }

        _TouchCalibrate TouchCalibrate=NULL;
        TouchCalibrate=(_TouchCalibrate)GetProcAddress(hinstance,L"TouchCalibrate");
        if (TouchCalibrate == NULL)
        {
                MessageBox(_T("加载校准函数失败"),_T("错误"),MB_OK);
                return;
        }
       
        TouchCalibrate ();
        FreeLibrary(hinstance );        

 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
谢谢,能不能说说如何设置触摸屏的背光时间 和 事件捕获
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
触摸屏的背光时间实现上和触摸屏本身没有关系,仅仅是一个LCD背光问题,即使没有触摸屏也一样可以且比较需要背光,详细的你可以看下背光驱动
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(中级)

6
 
背光驱动中亮起和关闭分别是通过获取PowerManager/UserActivity_active和PowerManager/UserActivity_Inactive事件之后去设置PWM或者一些IO口的,所以你可以在处理这些事件的代码过程中加些你的需求。比如向AP发消息等。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

7
 
实际上我想实现,当用户一段时间不操作时(可设置时间),关闭背光,使系统进入休眠状态,当点击触摸屏时,换醒系统,打开一些线程,这样的功能应该如何实现呢?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 6 楼 lingguang8888 的回复:
实际上我想实现,当用户一段时间不操作时(可设置时间),关闭背光,使系统进入休眠状态,当点击触摸屏时,换醒系统,打开一些线程,这样的功能应该如何实现呢?


这些都是电源管理控制与操作的。

电源管理模块实体是一个动态链接库pm.dll来实现的.可以在pb的catalog窗口中选择电源管理组件添加到os中.如下图,微软提供了2个选择(二选一).第一个代表完整功能,所有api全功能实现,第二个代表空实现(形式上提供接口,但空函数).

电源管理模块的代码结构是分层的,MDD+PDD.MDD是抽象公共库,不需要改动,PDD是平台相关,主要改动都在PDD.针对平台特性,微软提供了2种 类型PDD示例.一种是default,另外一种是pda版本的.默认的情况,使用的是default.
default版本定义了4种状态:On, UserIdle, SystemIdle, Suspend;
default版本的简单描述:UserIdle状态是描述用户在使用但没有操作,比如阅读.SystemIdle状态描述用户停止使用,但系统仍然工作,比如文件传输.

简单描述ScreenOff状态描述用户请求把屏幕背灯关闭.是用户主动关闭的情况,区别于UserIdle,UserIdle是自动 的.Unattended状态表示后台工作,用户不会对其察觉的情景,比如ActiveSync每5分钟唤醒系统同步,然后继续suspend; Resume状态描述唤醒后情景,比如唤醒后在指定时间内决定转到哪个状态,否则继续suspend.
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

9
 
谢谢
能说下实现代码,要使用哪些函数吗?
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

10
 
电源管理态麻烦了,哪位指教下,如何用代码设置背光时间,与检测背光状态函数,,,,

谢谢
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 9 楼 lingguang8888 的回复:
电源管理态麻烦了,哪位指教下,如何用代码设置背光时间,与检测背光状态函数,,,,

谢谢


的确ce 的电源管理几乎是最难的,特别是你需要根据自己的需求,进行定制与修改时。

给你点提示:
电源管理器被实现为一个名为PM.DLL的动态链接库而直接与DEVICE.EXE进行链接,当电源管理应用编程接口被调用时,DEVICE.EXE调用位于PM.DLL中的入口点。PM.DLL的源代码是MS提供,位于%_WINCEROOT%\PUBLIC\COMMON\OAK\DRIVERS\PM文件夹中,需要的话还可以对它进行定制修改。

在WinCE OAL中的电源管理主要由OEMIdle和OEMPowerOff两个函数实现。应该说OEMIdle实现的是处理器级的电源管理,而OEMPowerOff实现的是板级的电源管理。
在WinCE系统运行的时候,如果没有任何线程可以执行,那么内核就会调用OEMIdle函数。一般在OEMIdle中,处理器都会进入sleep模式或者idle模式,这取决于处理器本身所能支持的低功耗模式。应该说,这个时候系统中的各个设备还是正常工作的,只是处理器进入了一种低功耗模式。OEMIdle函数是OAL中必须实现的,MS 也提供了例程代码,在%_WINCEROOT%\Platform\Common\Src\Common\Timer\Idle路径下。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

12
 
这是什么触摸屏啊?我用的很简单啊,贴在显示器上,插上USB接口就行了~~~~

大家可以去看一下演示:点击进入
 
 
 

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

查找数据手册?

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