打印

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

[复制链接]
楼主: zhuyl456
手机看帖
扫描二维码
随时随地手机跟帖
21
zhuyl456|  楼主 | 2011-9-15 19:14 | 只看该作者 回帖奖励 |倒序浏览
2# zhongfushun
刚发完贴后我的思路也是这样的!
不过不是在main()函数里,而是在每个要执行的子程序里隔一段就放一个中断标志位的检测。
但是又发现了一个新的问题,我的程序在执行到最后一个子程序后,突然标志位清零了,其他的都很正常。经过测试,不是switch()的问题,也不是他们放置顺序的问题,问题在那个子程序里,因为结构基本相同,检查不出什么错误?

使用特权

评论回复
22
zhuyl456|  楼主 | 2011-9-15 19:29 | 只看该作者
4# NE5532
call语句的作用是函数调用,对吧?
但是我想要的不是要调用,而是直接跳出此函数,执行另外一个函数。

使用特权

评论回复
23
zhuyl456|  楼主 | 2011-9-15 19:31 | 只看该作者
5# sun520up
那我的软件延时的时间该怎么计算呢?
取最大?还是最小?还是有个什么特殊的中间值?

使用特权

评论回复
24
zhuyl456|  楼主 | 2011-9-15 19:32 | 只看该作者
6# chunyang
谢谢!您的建议不是没想过,但是短时间内去参考的话,还是比较吃力的,以后会往这方面发展的。

使用特权

评论回复
25
zhuyl456|  楼主 | 2011-9-15 19:34 | 只看该作者
7# ayb_ice
中断后不是还要返回吗?
返回后的不是还要继续执行那个子程序的吗?

使用特权

评论回复
26
zhuyl456|  楼主 | 2011-9-15 19:35 | 只看该作者
8# airwill
程序已经按功能分的还是很详细的了。
资源还是能跟上的,剩下的就是优化了

使用特权

评论回复
27
zhuyl456|  楼主 | 2011-9-15 19:37 | 只看该作者
9# 飞言走笔
这篇帖子很好,我在21IC里居然没有发现,谢谢你提供了这么好的帖子,以后我会往这个方向发展的。不过现在这个快要结束了,不想再费时间折腾了,不过对下一个题目的启发还是很大的

使用特权

评论回复
28
zhuyl456|  楼主 | 2011-9-15 19:38 | 只看该作者
10# ayb_ice
在网上找了很多,没有发现有这个函数,也没有发现有人是这么解决的。
不知道您的解决方法大概是什么样子的呢?

使用特权

评论回复
29
zhuyl456|  楼主 | 2011-9-15 19:40 | 只看该作者
11# icecut
乱搞是不会的,搞得还是有东西出来的,动画等做完了,传到网上给大家看看。
系统的东西太多,太全面了,暂时不会,只会简单的瞎搞搞

使用特权

评论回复
30
zhuyl456|  楼主 | 2011-9-15 19:41 | 只看该作者
12# linbei1988
显示确实是在定时器中断里的,按键循环检测用的是外部中断。

使用特权

评论回复
31
zhuyl456|  楼主 | 2011-9-15 19:42 | 只看该作者
13# 7120223
应该是吧,里面有大量的延时函数,需要继续优化。
但是我觉得和我想问的问题没有关系吧?

使用特权

评论回复
32
zhuyl456|  楼主 | 2011-9-15 19:44 | 只看该作者
14# NE5532
要的,但是这个调度不复杂。
因为我的每个子程序是一个动画,需要按键切换不同的动画。

使用特权

评论回复
33
zhuyl456|  楼主 | 2011-9-15 19:45 | 只看该作者
18# xiang87737274
两个要求,一个是要实时性的检测按键,另一个是要退出当时执行的程序。
不知道您会用什么方法去解决这个问题?

使用特权

评论回复
34
zhuyl456|  楼主 | 2011-9-15 19:52 | 只看该作者
谢谢大家的思路和方法,我把可以产生交流的都做了回复!
我想补充的是我做的是一个动画的点阵,相信网上也有很多这样的视频,动画的方式也是仿照他们做的,我加了按键,为的是切换不同的动画效果,不想每次都是挨个的演示下去。
这个就是为什么发这个帖子的初衷!

使用特权

评论回复
35
ssunyy| | 2011-9-15 20:40 | 只看该作者
建议看一些操作系统的书

使用特权

评论回复
36
zxcscm| | 2011-9-15 21:15 | 只看该作者
我曾经也有类似楼主这种困惑,做的是32灯的流水灯,各种花样轮流切换。
当初的想法是每个花样一个子程序,按一下键切换一种花样。但是每个子程序都是一个或若干for循环,导致按键后并不会立即切换花样,必须等到该花样结束才会切换。
想尽了各种方法,设置标志位,不断地break,return等等都没有很好的效果,后来看到一个类似状态机的程序,很有启发,按照状态机的思路重新写程序,所有的效果轻易就实现了。
建议楼主尝试下状态机或者说是时间片的写法。

使用特权

评论回复
37
e掾木| | 2011-9-15 22:24 | 只看该作者
应用实例火灾监控盘控制器,全天候在线工作,动态刷新128个LED;管理32个阵列键;管理一个RS485 modbus master,3个485的modbus slave,波特率9600;还有320x240 LCM,用没有DMA,16MIPS的PIC24F256GA110实现,不用RTOS的各位,能实现否?

使用特权

评论回复
38
zhuyl456|  楼主 | 2011-9-16 19:00 | 只看该作者
36# zxcscm
这个问题暂时已经解决了,但是很不符合编程规范和要求。
状态机和时间片?是一个什么样子的编程思路?有什么例子可以借鉴吗?

使用特权

评论回复
39
zhuyl456|  楼主 | 2011-9-16 19:01 | 只看该作者
37# e掾木
请问37楼,你想说明什么?

使用特权

评论回复
40
ayb_ice| | 2011-9-17 08:58 | 只看该作者
应用实例火灾监控盘控制器,全天候在线工作,动态刷新128个LED;管理32个阵列键;管理一个RS485 modbus master,3个485的modbus slave,波特率9600;还有320x240 LCM,用没有DMA,16MIPS的PIC24F256GA110实现,不用RT ...
e掾木 发表于 2011-9-15 22:24

不用16MIPS的PIC24
应该2~3MIPS的51就可以了,最多几M的单周期51就可以了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则