怎样按键和声音实时配合

[复制链接]
3783|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具体怎么工作跟按键没关系。
qichi56 发表于 2010-3-31 15:24 | 显示全部楼层
 楼主| godblessyou 发表于 2010-3-31 16:54 | 显示全部楼层
我是将声音写成一个函数,然后执行按键处理时调用的,因此出现上面的现象,声音函数是用定时器产生特定的脉冲频率做的。不知道有什么问题? 4# liao_fangxing
xuyaqi 发表于 2010-3-31 17:17 | 显示全部楼层
就是响一下还需要用“定时器产生特定的脉冲频率做”吗,把简单问题搞复杂了。
yytdragon 发表于 2010-3-31 17:22 | 显示全部楼层
还可以硬件实现。。。就是按下去不放,响声也不听那种,呵呵
 楼主| godblessyou 发表于 2010-3-31 17:52 | 显示全部楼层
就是响一下还需要用“定时器产生特定的脉冲频率做”吗,把简单问题搞复杂了。
xuyaqi 发表于 2010-3-31 17:17
恩,你认为该怎么做呢?谢谢
xuyaqi 发表于 2010-3-31 19:57 | 显示全部楼层
有通电就响断电就停的蜂鸣器,你只要控制通电时间长短就行。
john_light 发表于 2010-4-1 09:26 | 显示全部楼层
就是响一下还需要用“定时器产生特定的脉冲频率做”吗,把简单问题搞复杂了。
xuyaqi 发表于 2010-3-31 17:17

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

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

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

我怀疑产生延迟的原因是你在检测到按键按下到调用蜂鸣函数之间的代码占用了太多时间。
 楼主| godblessyou 发表于 2010-4-1 10:52 | 显示全部楼层
无源蜂鸣器是要脉冲驱动的,因此用定时器产生特定脉冲频率是很正常的事情。

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

在按键程序中需要蜂鸣的地方启动那个产生固定频率方波的定时器,而定时器中断服务中设有一个变量用于 ...
john_light 发表于 2010-4-1 09:26
我再去改改,分就给你吧,弄不好再来找你,呵呵,谢谢啊
zdhlixiang2006 发表于 2010-4-1 11:00 | 显示全部楼层
有这种现象?
stk60xx 发表于 2010-4-2 17:31 | 显示全部楼层
Jarrywd 发表于 2010-5-26 13:19 | 显示全部楼层
试试中断如何?
ayb_ice 发表于 2010-5-26 13:50 | 显示全部楼层
程序架构不对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

28

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部