一个程序没有执行完,可以执行另一个程序吗?

[复制链接]
9769|54
 楼主| zhuyl456 发表于 2011-9-14 20:33 | 显示全部楼层 |阅读模式
用单片机做了一个16*16点阵,每个子程序执行的很好!
想把按键实时查询检测放进去,但是每次都要等一个子程序执行完才可以检测按键,换了中断检测后,也要等子程序执行完才可以切换到下一个程序。
请问有没有什么方法可以从一个程序跳转到另一个子程序?
zhongfushun 发表于 2011-9-14 20:43 | 显示全部楼层
用中断,设置标志位。main()中查询标志位,如标志位被置位就处理相应的子程序。
袁修宾66aa 发表于 2011-9-14 20:52 | 显示全部楼层
NE5532 发表于 2011-9-14 20:58 | 显示全部楼层
call不就完了,哪个call不是从一个程序跳到另一个程序?
sun520up 发表于 2011-9-15 01:09 | 显示全部楼层
如果用软件延时就把按键扫描放在Delay里面,小于10MS调用一次扫描键盘
chunyang 发表于 2011-9-15 01:25 | 显示全部楼层
最好的办法是参考实时操作系统的任务调度机制思想,适当简化后应用。
ayb_ice 发表于 2011-9-15 08:34 | 显示全部楼层
被中断即可
airwill 发表于 2011-9-15 08:40 | 显示全部楼层
找 RTOS 帮你的忙了. 如果资源跟不上. 那就优化你的程序, 把子程序打断成若干小子程序
飞言走笔 发表于 2011-9-15 09:43 | 显示全部楼层
是否可以参考下这个帖子:
https://bbs.21ic.com/icview-237577-1-1.html
ayb_ice 发表于 2011-9-15 10:01 | 显示全部楼层
标准C有个setjmp是用来做这个的
icecut 发表于 2011-9-15 10:04 | 显示全部楼层
lz在乱搞....上系统吧
linbei1988 发表于 2011-9-15 10:18 | 显示全部楼层
应该是把显示放在中断里刷新,按键循环检测才是啊
7120223 发表于 2011-9-15 10:31 | 显示全部楼层
这个程序应该 不是很复杂的吧 楼主是没有合理的分配好 资源
NE5532 发表于 2011-9-15 10:46 | 显示全部楼层
但是首先要说清楚,是不是需要这么复杂的调度。
lh8008 发表于 2011-9-15 13:43 | 显示全部楼层
最好是用定时中断。
chxgzl4862 发表于 2011-9-15 14:18 | 显示全部楼层
顶!参考操作系统的做法哈!
wang1991 发表于 2011-9-15 15:26 | 显示全部楼层
定时中断!
xiang87737274 发表于 2011-9-15 15:30 | 显示全部楼层
你可不可以加
if()
break;
进去作为跳出。应该可以直接退出当时执行程序。
mwx073 发表于 2011-9-15 17:13 | 显示全部楼层
可以用中断程序
joecongmin 发表于 2011-9-15 17:52 | 显示全部楼层
可以用定时器定时10MS进中断,每10MS扫一下点阵,每40MS,扫一次按键
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

75

帖子

1

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