OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4472|回复: 19

新人求助,如何让按键有暂停的功能

[复制链接]

3

主题

14

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-4-7
在线时间
11 小时
发表于 2016-5-26 09:32:29 | 显示全部楼层 |阅读模式
2金钱
想的就是按键按下流水灯停在当前那个灯的位置,再按下就继续亮

最佳答案

查看完整内容[请看2#楼]

用定时器中断控制流水灯,主程序扫描按键,暂停就是关闭定时器,继续就打开定时器
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
684
金钱
684
注册时间
2016-1-27
在线时间
184 小时
发表于 2016-5-26 09:32:30 | 显示全部楼层

用定时器中断控制流水灯,主程序扫描按键,暂停就是关闭定时器,继续就打开定时器
回复

使用道具 举报

13

主题

611

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1929
金钱
1929
注册时间
2014-10-6
在线时间
625 小时
发表于 2016-5-26 09:48:23 | 显示全部楼层
按下时不执行流水灯程序,程序执行别的就看你按排了,再按下接着执行流水灯就好了!
回复

使用道具 举报

0

主题

11

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-5-23
在线时间
5 小时
发表于 2016-5-26 10:02:59 | 显示全部楼层
不是用中断么
回复

使用道具 举报

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2014-10-26
在线时间
11 小时
发表于 2016-5-26 10:17:53 | 显示全部楼层
一个按键多个功能就设置个标志位。两个功能就取个反多个功能就计数判断
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-4-7
在线时间
11 小时
 楼主| 发表于 2016-5-26 10:25:31 | 显示全部楼层
hwhcgx 发表于 2016-5-26 10:17
一个按键多个功能就设置个标志位。两个功能就取个反多个功能就计数判断

谢谢您的回答,但我也想知道暂停怎么实现,谢谢
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-4-7
在线时间
11 小时
 楼主| 发表于 2016-5-26 10:29:09 | 显示全部楼层

中断函数怎么写呢
回复

使用道具 举报

0

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
684
金钱
684
注册时间
2016-1-27
在线时间
184 小时
发表于 2016-5-26 10:32:22 | 显示全部楼层
你这是求思路吗?
回复

使用道具 举报

13

主题

276

帖子

0

精华

高级会员

Rank: 4

积分
697
金钱
697
注册时间
2014-6-20
在线时间
146 小时
发表于 2016-5-26 10:35:25 | 显示全部楼层
七十八 发表于 2016-5-26 10:25
谢谢您的回答,但我也想知道暂停怎么实现,谢谢

把流水灯程序写成一个函数,条件执行。按键接下时,改变条件,流水灯函数不执行,再按下,流水灯程序符合条件,执行。

实际就是一个按键计数的功能
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-4-7
在线时间
11 小时
 楼主| 发表于 2016-5-26 10:36:01 | 显示全部楼层
烟酒不沾 发表于 2016-5-26 09:48
按下时不执行流水灯程序,程序执行别的就看你按排了,再按下接着执行流水灯就好了!

能不能就让他保持在那儿呢,用中断的话,如果执行别的,执行完了不还是回到流水灯程序吗。谢谢您的回复
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-4-7
在线时间
11 小时
 楼主| 发表于 2016-5-26 10:36:51 | 显示全部楼层

对,求思路。
回复

使用道具 举报

13

主题

201

帖子

0

精华

高级会员

Rank: 4

积分
671
金钱
671
注册时间
2015-4-26
在线时间
173 小时
发表于 2016-5-26 10:37:03 | 显示全部楼层
你这是让别人给你现成程序啊,自己写条件标志写中断
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-4-7
在线时间
11 小时
 楼主| 发表于 2016-5-26 10:41:44 | 显示全部楼层
康仔呦 发表于 2016-5-26 10:37
你这是让别人给你现成程序啊,自己写条件标志写中断

你可能误会我了,我其实是没明白设置标志位是什么意思
回复

使用道具 举报

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2014-10-26
在线时间
11 小时
发表于 2016-5-26 10:43:16 | 显示全部楼层
标志位的问题你们有啥好主意吗,写程序自己乱定义全局变量似乎容易弄混了。
我是新手,别人让我写程序最好不用全局变量,但这写程序到底该怎么掌握呢
回复

使用道具 举报

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2014-10-26
在线时间
11 小时
发表于 2016-5-26 10:45:32 | 显示全部楼层
七十八 发表于 2016-5-26 10:36
能不能就让他保持在那儿呢,用中断的话,如果执行别的,执行完了不还是回到流水灯程序吗。谢谢您的回复

你到底要什么功能。这个按键的功能不就是流水灯的恢复与暂停吗
回复

使用道具 举报

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2014-10-26
在线时间
11 小时
发表于 2016-5-26 10:48:02 | 显示全部楼层
hwhcgx 发表于 2016-5-26 10:43
标志位的问题你们有啥好主意吗,写程序自己乱定义全局变量似乎容易弄混了。
我是新手,别人让我写程序最 ...

把全局变量封装成结构体是不是好一些
回复

使用道具 举报

0

主题

11

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-5-23
在线时间
5 小时
发表于 2016-5-26 11:13:59 | 显示全部楼层

在DELAY() 里用WHILE(FLAG)   在中断里 将FLAG=1 或 0;  看看 可以么?
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-4-7
在线时间
11 小时
 楼主| 发表于 2016-5-26 12:44:53 | 显示全部楼层
不吃鱼的老鼠 发表于 2016-5-26 11:04
用定时器中断控制流水灯,主程序扫描按键,暂停就是关闭定时器,继续就打开定时器

嗯嗯,用定时器这个可以。现在就是我把按键设置成中断,如果按下的是奇数次开启定时器,偶数次关闭定时器。但这个有时候好使,有时候不好使。我再想想,总之很感谢你。
回复

使用道具 举报

0

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
684
金钱
684
注册时间
2016-1-27
在线时间
184 小时
发表于 2016-5-26 13:50:14 | 显示全部楼层
七十八 发表于 2016-5-26 12:44
嗯嗯,用定时器这个可以。现在就是我把按键设置成中断,如果按下的是奇数次开启定时器,偶数次关闭定时器 ...

同是新手,共同进步!
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-4-7
在线时间
11 小时
 楼主| 发表于 2016-5-26 14:58:02 | 显示全部楼层
不吃鱼的老鼠 发表于 2016-5-26 13:50
同是新手,共同进步!

嗯嗯,我设置完延时就没问题了。谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-8 15:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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