4646|7

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince 6.0 IO 扫描键盘驱动 [复制链接]

各位大哥:
    最近在研究用 IO 来做键盘,
    有几个问题不明白,
    1、很多IO键盘驱动都是使用中断来实现,比如 4X4 的要 4 个中断,首先创建一个事件,然后启动一个线程,
       通过线程来等待中断事件,然后扫描IO得到 键盘的状态,对应向系统发送键盘事件。
       这里有点不明白的是,为什么需要中断呢?不用中断,在系统加载键盘驱动
       的时候启动一个线程,扫描 IO 的状态,然后得到键盘的状态,对应向系统发送事件不就可以了吗?
      
       在这里请问大家,两种做法,哪种比较实用?系统开销那种小?
    2、如果需要中文输入法,那么这些按键启动一样适用吗?
       比如,我的键盘向系统发送一个 键盘 A 的事件 , 我在双拼里面输入也是 A 吗?

谢谢各位大哥,
小弟刚刚研究 WINCE 。

此帖出自WindowsCE论坛

最新回复

CPU是处于 sleep ?? 我还以为一直处于扫描事件状态呢, 就比如 while(1) {     if(Event)     {         ....     } }      详情 回复 发表于 2009-12-23 16:30
点赞 关注
 

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
结帖率:36.36%

--------------------
我增加曝光率,抢镜。


看优龙的BSP有。
此帖出自WindowsCE论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
1. 不用中断系统开销太大,键盘绝大部分时间不工作的,你的扫描线程却要不断的扫描.如果是单片机程序我感觉扫描键盘比中断好,相对比较容易处理去抖动以及多键齐按,一键按下后再按另外键等非常规状态.
2. 是的,中文输入法一样可以用.
此帖出自WindowsCE论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

4
 
当然也可以Sleep若干ms,不断扫描,其实对几百M的cpu来说,也不算什么.
此帖出自WindowsCE论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 2 楼 reallyu 的回复:
1. 不用中断系统开销太大,键盘绝大部分时间不工作的,你的扫描线程却要不断的扫描.如果是单片机程序我感觉扫描键盘比中断好,相对比较容易处理去抖动以及多键齐按,一键按下后再按另外键等非常规状态.
2. 是的,中文输入法一样可以用.

但是如果使用中断,在线程里面等待中断事件, 这和扫描有什么区别呢? 一样占用系统资源啊~!
此帖出自WindowsCE论坛
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 3 楼 reallyu 的回复:
当然也可以Sleep若干ms,不断扫描,其实对几百M的cpu来说,也不算什么.

是的,我就打算用 sleep(5) 来实现,连续检测到 20 次高电平就当有按键。
呵呵,个人感觉一样的占用 CPU 资源啊~!
此帖出自WindowsCE论坛
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(中级)

7
 
使用中断,在线程中等待的时候,没有中断发生的时候,这个线程相当于一直sleep
不会占用cpu,只有中断发生的时候才占用cpu来扫描键盘
此帖出自WindowsCE论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 6 楼 reallyu 的回复:
使用中断,在线程中等待的时候,没有中断发生的时候,这个线程相当于一直sleep
不会占用cpu,只有中断发生的时候才占用cpu来扫描键盘

CPU是处于 sleep ??
我还以为一直处于扫描事件状态呢,
就比如
while(1)
{
    if(Event)
    {
        ....
    }
}
   
此帖出自WindowsCE论坛
 
 
 

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

随便看看
查找数据手册?

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