想吃鸡最低配置设置要换什么?

新手求助,按键长按+短按,定时器怎么写? - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
新手求助,按键长按+短按,定时器怎么写?
21:31:54  
求助论坛的大大,我百度了好多案例,感觉都不合适,也许是我不会搜索 。现在有2个按键,3个LED灯,当S1 长按5秒后,然后间歇的安S2按键,3个LED灯会有2的3次方=8个变化。请问下,这个按键实现我想用定时器实现,应该怎么写?求指导或者例子也行,或者有哪个帖子适合的,麻烦网址告知一下。先谢谢各位了。
奖励10积分
定时器只用用来设定某一个时间片到达后就进入中断,其实就是相当于一个延时~只是用了时间片的思想啦~下面是我常用的一段扫描按键的方法~
/***按键扫描******/
void KeyScan()
& & & & static unsigned char state=0;
& & & & if(key1==0)& && &temp=key1_V
& & & & else if(key2==0) temp=key2_V
& & & & else if(key3==0) temp=key3_V
& & & & else if(key4==0) temp=key4_V
& & & & else& & & & & & & & & & & &&&temp=0;
& & & & switch(state)
& & & & & & & & case 0:& & & & if(temp!=0) state=1;
& & & & & & & & & & & & & & & &
& & & & & & & & case 1:state=2;
& & & & & & & & & & & & & & & &
& & & & & & & & case 2:& & & & if(temp!=0) {state=3; KeyPress=}
& & & & & & & & & & & & & & & & else state=0;
& & & & & & & & & & & & & & & &
& & & & & & & & case 3: if(temp==0)& & & &&&{HandleKeyPress(); state=0;}& && &/ /按键扫描后的处理
& & & & & & & & & & & & & & & && & & & & & & & & & & &
& & & & }& & & &
你只需要在定义一个变量,如ms_1=10,让它在中断里面做减减~然后用
& && && &if(ms_1&=0)
& && && &&&{
& && && && && && & KeyScan();
& && && && && && &ms_1=10;
& && && && &}
这样就可以扫描按键实现消抖。。。。中断一般也就这么用的吧。。。看不懂楼主的问题,希望对你有用~
21:31:55  
定时器只用用来设定某一个时间片到达后就进入中断,其实就是相当于一个延时~只是用了时间片的思想啦~下面是我常用的一段扫描按键的方法~
/***按键扫描******/
void KeyScan()
& & & & static unsigned char state=0;
& & & & if(key1==0)& && &temp=key1_V
& & & & else if(key2==0) temp=key2_V
& & & & else if(key3==0) temp=key3_V
& & & & else if(key4==0) temp=key4_V
& & & & else& & & & & & & & & & & &&&temp=0;
& & & & switch(state)
& & & & & & & & case 0:& & & & if(temp!=0) state=1;
& & & & & & & & & & & & & & & &
& & & & & & & & case 1:state=2;
& & & & & & & & & & & & & & & &
& & & & & & & & case 2:& & & & if(temp!=0) {state=3; KeyPress=}
& & & & & & & & & & & & & & & & else state=0;
& & & & & & & & & & & & & & & &
& & & & & & & & case 3: if(temp==0)& & & &&&{HandleKeyPress(); state=0;}& && &/ /按键扫描后的处理
& & & & & & & & & & & & & & & && & & & & & & & & & & &
& & & & }& & & &
你只需要在定义一个变量,如ms_1=10,让它在中断里面做减减~然后用
& && && &if(ms_1&=0)
& && && &&&{
& && && && && && & KeyScan();
& && && && && && &ms_1=10;
& && && && &}
这样就可以扫描按键实现消抖。。。。中断一般也就这么用的吧。。。看不懂楼主的问题,希望对你有用~
20:23:28  
先判断出按钮的按下动作,然后计数,根据定时器的定时时间计时就行了吧
20:08:06  
定时器只用用来设定某一个时间片到达后就进入中断,其实就是相当于一个延时~只是用了时间片的思想啦~下面是 ...
非常感谢。磕磕碰碰的终于自己搞定了一个小程序。
CellWise周军
12个问题&&&&&&&&1946个浏览
13个问题&&&&&&&&14114个浏览
6个问题&&&&&&&&6063个浏览
每天选一个需要解决的问题,大家一起来帮忙。
授人玫瑰,手有余香
您可能在工作中遇到如下问题,点击下载即可预览专家给出的答案。
问:我从事数码电子产品工作,为什么一开始要用模拟元件?
问:微调器会不会让我的设计变得太复杂,影响用户使用?
问:选择微调器前应该考虑哪些特性?
Powered by

我要回帖

更多关于 吃鸡的最低配置 的文章

 

随机推荐