[51单片机] 请教问题。单片机_双击_。

[复制链接]
3867|44
jazzyfox 发表于 2018-10-21 22:02 | 显示全部楼层
用延时检测吧,最简单,只要ROM够,随便用
ayb_ice 发表于 2018-10-22 08:32 | 显示全部楼层
tianqi911 发表于 2018-10-19 18:00
我问了下原厂的FAE,他跟我说用T0,判断2次之间的时间就行了。可以不用开中断。所以我觉的可能不需要状态 ...

扫键要去抖,不用状态机会导致系统延时,
eydj2008 发表于 2018-10-22 10:04 | 显示全部楼层
状态机 是啥  什么是状态机
向来我就知道 有路就开   

评论

哈哈。大牛人。我可不行,菜逼。  发表于 2018-10-23 10:54
红烧鲫鱼 发表于 2018-10-22 10:14 | 显示全部楼层
本帖最后由 红烧鲫鱼 于 2018-10-24 14:31 编辑

非要给人灌输高难度的,如果状态机和定时器玩的6他就不来问这个问题了。

比如你的功能就是按键和显示两个 大循环中有显示和按键检测两个任务,大致估算下显示函数的时间为5ms。用一个for循环就能实现你的功能。

if (KEY)
{
flag=1;
display();
display();
for(i=0;i<100;i++)
{
if(KEY)
flag=2;
}
}

单击 flag=1;双击flag=2;
忘了长按的选项了,显示函数也忘了加了改下


if (KEY)
{
flag=1;
display();
display();
for(i=0;i<100;i++)
{
display();
if(KEY&&(flag==3))
falg=4,i=100;
if(KEY&&(flag<4))
flag=2;
else
flag=3;
}


}
单击flag=3 长按flag=2双击flag=4
昨天改的竟然没提交上去

评论

@tree844 :赞一个。我试过类似的结构,但没实现。  发表于 2018-10-23 09:21
@tree844 :对的 改下  发表于 2018-10-22 11:01
这样的话如果是长按是不是也会误判为双击?  发表于 2018-10-22 10:24
 楼主| tianqi911 发表于 2018-10-23 09:25 | 显示全部楼层
座机呀 发表于 2018-10-19 22:17
如果使用的是基于别人编写好的带电容触摸底层的单片机进行二次开发,可能定时器这些资源被底层占用了,不太方 ...

因为库里有_单击_,写好了。原来想的很简单,就是判断下2次_单击_的间隔时间,发现我不行。(水平太次)所以请教高人。
 楼主| tianqi911 发表于 2018-10-23 09:26 | 显示全部楼层
junyee 发表于 2018-10-20 10:11
LZ 啊LZ 是在工厂上班吗,,,还招人吗

哈哈。我要是有招人的权利,就招一个厉害的,一边拜师学艺,一边一起工作了。
 楼主| tianqi911 发表于 2018-10-23 09:27 | 显示全部楼层
caijie001 发表于 2018-10-21 12:08
我已经写完的开源的按键驱动,,纯C语言实现的一个按键驱动,可移植性强,支持单双击、连按、连按释放、长 ...

这么厉害,有链接吗?能否给个?
 楼主| tianqi911 发表于 2018-10-23 09:28 | 显示全部楼层

我一用T0中断就死机了。(但原厂的工程师可以)(我水平太次)
 楼主| tianqi911 发表于 2018-10-23 09:30 | 显示全部楼层
oufuqiang 发表于 2018-10-19 23:38
你说我是不是有点闲

不闲不闲,对我这种低手中的低手来说,太珍贵了。就这我还要看半天呢。非常感谢。
 楼主| tianqi911 发表于 2018-10-23 10:35 | 显示全部楼层
楼上的高人们,能否给个框架呢(具体点的)?能体现出来 单击 双击 长按-连击 ,和定时器之间的关系。     状态机也要开定时器中断嘛,但我对按键和定时器之间的关系就处理不好。 看了几本书,有的书上摘抄的只有状态机部分,没有定时器的内容;有的书上给了例子,带了状态机的,但照着试验,运行不了。(因为我水平次,所以请高人能否给点具体的框架)

评论

@junyee :基础不牢地动山摇  发表于 2018-10-25 19:40
你就别看什么框架吧,那个更复杂,先把基础打好。  发表于 2018-10-25 19:12
eydj2008 发表于 2018-10-23 11:43 | 显示全部楼层
你照19楼的思路写 基本错不了
caijie001 发表于 2018-10-23 13:11 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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