OpenEdv-开源电子网

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

两个命令,第一个执行时,第二个命令到来,中断第一个命令去执行第二个命令,怎么设计

[复制链接]

34

主题

174

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2017-3-10
在线时间
173 小时
发表于 2017-5-2 14:17:43 | 显示全部楼层 |阅读模式
10金钱
两个命令,第一个执行时,第二个命令到来,中断第一个命令去执行第二个命令,怎么设计

最佳答案

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

已经实现了,程序改为了一个for循环,设置一个命令标记位。接收到命令,第二个命令,或则第三。。。。。就++;当它不为0x01就进入另一个新的循环,结尾用break跳出总循环。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

174

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2017-3-10
在线时间
173 小时
 楼主| 发表于 2017-5-2 14:17:44 | 显示全部楼层
Electronic 发表于 2017-5-3 09:29
你这个实现起来并不怎么简单的

已经实现了,程序改为了一个for循环,设置一个命令标记位。接收到命令,第二个命令,或则第三。。。。。就++;当它不为0x01就进入另一个新的循环,结尾用break跳出总循环。
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3774
金钱
3774
注册时间
2015-4-26
在线时间
766 小时
发表于 2017-5-2 14:59:33 | 显示全部楼层
第二个命令触发个中断,在中断里执行。要么就上ucos
回复

使用道具 举报

34

主题

174

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2017-3-10
在线时间
173 小时
 楼主| 发表于 2017-5-2 15:03:34 | 显示全部楼层
来俩不甜的 发表于 2017-5-2 14:59
第二个命令触发个中断,在中断里执行。要么就上ucos

我去试试,现在还没用uco,就先用中断试试
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-5-2 16:31:17 | 显示全部楼层
  一个抢占优先级为0    一个抢占优先级为1
回复

使用道具 举报

10

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2017-4-20
在线时间
102 小时
发表于 2017-5-2 16:33:41 | 显示全部楼层
或者参考原子的外部中断程序    第二个程序放在中断里面   第一个放在主程序
回复

使用道具 举报

34

主题

174

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2017-3-10
在线时间
173 小时
 楼主| 发表于 2017-5-3 09:27:21 | 显示全部楼层
564646396 发表于 2017-5-2 16:33
或者参考原子的外部中断程序    第二个程序放在中断里面   第一个放在主程序

谢谢提供思路,去试试
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4036
金钱
4036
注册时间
2015-11-14
在线时间
545 小时
发表于 2017-5-3 09:29:09 | 显示全部楼层
你这个实现起来并不怎么简单的
回复

使用道具 举报

70

主题

6769

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13197
金钱
13197
注册时间
2012-11-26
在线时间
3820 小时
发表于 2017-5-3 09:33:54 | 显示全部楼层
那得看你的框架能不能打断,比如你叫一个东西往上跑,跑的路途中,你让他往下跑,就乱套了!
回复

使用道具 举报

34

主题

174

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2017-3-10
在线时间
173 小时
 楼主| 发表于 2017-5-3 14:25:31 | 显示全部楼层
jermy_z 发表于 2017-5-3 09:33
那得看你的框架能不能打断,比如你叫一个东西往上跑,跑的路途中,你让他往下跑,就乱套了!

刚开始就是由于框架定了,不好大改。涉及的多了,理几哈头都晕了,还好最后找到了个简单的方法。
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4036
金钱
4036
注册时间
2015-11-14
在线时间
545 小时
发表于 2017-5-3 17:09:35 | 显示全部楼层
你这样并没有实时性,需要等当前执行的函数(循环)完成了才可能执行其他的,你这样的画和switch一样的思路
回复

使用道具 举报

34

主题

174

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2017-3-10
在线时间
173 小时
 楼主| 发表于 2017-5-3 17:16:47 | 显示全部楼层
Electronic 发表于 2017-5-3 17:09
你这样并没有实时性,需要等当前执行的函数(循环)完成了才可能执行其他的,你这样的画和switch一样的思路

实测没有吖,当第二个命令进入就中断了第一个命令的行为,进入新的命令循环处理
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4036
金钱
4036
注册时间
2015-11-14
在线时间
545 小时
发表于 2017-5-3 18:29:20 | 显示全部楼层
那是因为你函数执行的时间没有多长
回复

使用道具 举报

34

主题

174

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2017-3-10
在线时间
173 小时
 楼主| 发表于 2017-5-4 09:17:58 | 显示全部楼层
Electronic 发表于 2017-5-3 18:29
那是因为你函数执行的时间没有多长

如果有这样的问题,怎么去解决呢?写一个中断函数?
回复

使用道具 举报

14

主题

112

帖子

0

精华

高级会员

Rank: 4

积分
500
金钱
500
注册时间
2017-4-25
在线时间
110 小时
发表于 2017-5-5 19:33:30 | 显示全部楼层
最简单三个while循环,两个按键控制中断
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-21 14:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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