一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

搜索
楼主: sunny20

[其他综合] 按键另类处理高效程序V1.0

[复制链接]
发表于 2014-3-1 16:24 | 显示全部楼层
wanjinjie 发表于 2014-3-1 12:37
我之前有写过单片机做的类似PLC的控制板!用定时器以3.3ms的速度扫描I/O口,当连续比较三次相同则认为确实 ...

非常好!抄下来好好研究下,谢谢!
回复

使用道具 举报

发表于 2014-3-1 16:25 | 显示全部楼层
楼主的程序非常有特色。
回复

使用道具 举报

发表于 2014-3-1 17:41 | 显示全部楼层
我记得21ic上菜农(?)那个按键扫描的思路很好...也是利用定时器...利用动态扫描的间隔20ms..来弄..(虽然..我一直没成功过长按功能..和组合键,ORZ)

回复

使用道具 举报

发表于 2014-3-1 20:01 | 显示全部楼层
就是就是,间隔有点长,万一要是碰到了传说中的每秒16次按键的快手,就分辨不出来了~~
回复

使用道具 举报

发表于 2014-3-24 22:15 | 显示全部楼层
见识了。
回复

使用道具 举报

发表于 2014-3-25 22:01 | 显示全部楼层
我今天也写了这个程序,以前一直软延时消抖..
现在也嫌它浪费CPU了.

用的STM8的TIM4,在中断函数中对cnt_Delay进行累加.
写了一个函数Key_Read.
里面读出一当前按键值key_Scan,
根据当前状态,及上一次key_Last,来判断是否返回键值key_Press.或对cnt_Delay重赋值,或对key_Last赋值.

感觉思路有些绕,,,
并且,用了一个TIM,两个全局变量(key_Last,cnt_Delay),,,感觉有些浪费资源.

不过,比软消抖是好多了.
回复

使用道具 举报

发表于 2014-3-26 08:14 | 显示全部楼层
用分频处理就不用浪费哪么多资源了
回复

使用道具 举报

发表于 2014-3-26 20:39 | 显示全部楼层
以前一直用软件消抖的,效果尚可.实现起来也简单.

没想到用定时器还挺麻烦.还好,我这个定时器(TIM4)是常开的,系统计数.
STM8定时器多,不差这一个.

只是IAR生成的文件看不到CODE,RAM 占用的提示(准确的),不知道还有多省RAM可用,1K还是有些嫌少..

回复

使用道具 举报

发表于 2014-4-14 12:48 | 显示全部楼层
用一个164可以实现按键和数码管显示,有时间把以前的汇编改成C代码分享下
QQ图片20140414124636.jpg
回复

使用道具 举报

发表于 2014-5-1 17:04 | 显示全部楼层
一般按键,按下时候要避开抖动;
同样道理按键松开的检测,也是要防抖动。
一般
松开防抖动时间比按下可以长一些
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-8-19 00:03 , Processed in 0.035224 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表