打印

怎样按键和声音实时配合

[复制链接]
2804|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
godblessyou|  楼主 | 2010-3-31 11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 godblessyou 于 2010-3-31 11:29 编辑

在做按键声音时遇到一个问题,我想实现的功能是按一下键就会发声,提示输入的人。但是做出来的效果是按了一下键,等了大约0.5秒才发声,感觉没有实时发声的功能,我看到银行的输入密码机按一下键立即就发生声了,请教谁能指导一下吗?谢谢!
补充一下,声音是采用按键中断中的和键值散转两种方式,不过这两种的现象都与上面的相同

相关帖子

沙发
computer00| | 2010-3-31 11:23 | 只看该作者
那可能是你的按键处理不对吧

使用特权

评论回复
板凳
liao_fangxing| | 2010-3-31 15:15 | 只看该作者
等了大约0.5秒才发声————你的程序有多大?跑一趟要多长时间?是不是有很多延时程序在里面啊?

使用特权

评论回复
地板
liao_fangxing| | 2010-3-31 15:22 | 只看该作者
按键和BUZ声音是2个独立的模块  中间可通过2个变量联系:声音模式(静音、声音1、声音2……)和声音时间(用于做不同声音)   按键按下后赋一个声音给 声音模式   再清零声音时间 就行  至于BUZ具体怎么工作跟按键没关系。

使用特权

评论回复
5
qichi56| | 2010-3-31 15:24 | 只看该作者

使用特权

评论回复
6
godblessyou|  楼主 | 2010-3-31 16:54 | 只看该作者
我是将声音写成一个函数,然后执行按键处理时调用的,因此出现上面的现象,声音函数是用定时器产生特定的脉冲频率做的。不知道有什么问题? 4# liao_fangxing

使用特权

评论回复
7
xuyaqi| | 2010-3-31 17:17 | 只看该作者
就是响一下还需要用“定时器产生特定的脉冲频率做”吗,把简单问题搞复杂了。

使用特权

评论回复
8
yytdragon| | 2010-3-31 17:22 | 只看该作者
还可以硬件实现。。。就是按下去不放,响声也不听那种,呵呵

使用特权

评论回复
9
godblessyou|  楼主 | 2010-3-31 17:52 | 只看该作者
就是响一下还需要用“定时器产生特定的脉冲频率做”吗,把简单问题搞复杂了。
xuyaqi 发表于 2010-3-31 17:17
恩,你认为该怎么做呢?谢谢

使用特权

评论回复
10
xuyaqi| | 2010-3-31 19:57 | 只看该作者
有通电就响断电就停的蜂鸣器,你只要控制通电时间长短就行。

使用特权

评论回复
11
john_light| | 2010-4-1 09:26 | 只看该作者
就是响一下还需要用“定时器产生特定的脉冲频率做”吗,把简单问题搞复杂了。
xuyaqi 发表于 2010-3-31 17:17

无源蜂鸣器是要脉冲驱动的,因此用定时器产生特定脉冲频率是很正常的事情。

个人觉得无源的比有源的更可靠。

在按键程序中需要蜂鸣的地方启动那个产生固定频率方波的定时器,而定时器中断服务中设有一个变量用于控制蜂鸣时间,时间到则停止定时器。

我怀疑产生延迟的原因是你在检测到按键按下到调用蜂鸣函数之间的代码占用了太多时间。

使用特权

评论回复
12
godblessyou|  楼主 | 2010-4-1 10:52 | 只看该作者
无源蜂鸣器是要脉冲驱动的,因此用定时器产生特定脉冲频率是很正常的事情。

个人觉得无源的比有源的更可靠。

在按键程序中需要蜂鸣的地方启动那个产生固定频率方波的定时器,而定时器中断服务中设有一个变量用于 ...
john_light 发表于 2010-4-1 09:26
我再去改改,分就给你吧,弄不好再来找你,呵呵,谢谢啊

使用特权

评论回复
13
zdhlixiang2006| | 2010-4-1 11:00 | 只看该作者
有这种现象?

使用特权

评论回复
14
stk60xx| | 2010-4-2 17:31 | 只看该作者
不解

使用特权

评论回复
15
Jarrywd| | 2010-5-26 13:19 | 只看该作者
试试中断如何?

使用特权

评论回复
16
ayb_ice| | 2010-5-26 13:50 | 只看该作者
程序架构不对

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

28

帖子

1

粉丝