打印

msp430f247程序运行一段时间,跑飞,从头开始运行

[复制链接]
楼主: 外方爱
手机看帖
扫描二维码
随时随地手机跟帖
21
yirongfu| | 2017-5-17 00:43 | 只看该作者 回帖奖励 |倒序浏览
backlugin 发表于 2017-5-16 22:11
现在中断函数不能执行太多,否则其他中断不能执行。

中断有优先级,中断可以嵌套,“现在中断函数不能执行太多”这个不是现在才这样哦,是一直以来都推荐中断不要占用太多时钟周期,但我个人觉得不是说中断函数执行多了就一定是错,要看应用环境和单片机具体的中断机制,还要看设计人员编程的能力和质量。楼主的问题描述非常有限(提问的质量可以窥见其做事的风格和态度),不能具体分析问题所在,但即使他几个外设同时工作,某个时刻只在处理某个外设的中断事件,而同时有其它外设也来了中断,那最坏的可能只是其它中断没有及时处理甚至错过,但不至于导致程序跑飞,跑飞应该是人为的失误,可能是硬件设计也可能是软件设计。

使用特权

评论回复
22
外方爱|  楼主 | 2017-5-17 09:25 | 只看该作者
yirongfu 发表于 2017-5-17 00:43
中断有优先级,中断可以嵌套,“现在中断函数不能执行太多”这个不是现在才这样哦,是一直以来都推荐中断 ...

硬件我肯定没问题,我有个疑问,UART0接收数据,我写的是进入400次中断,每次接收一个字符,这样会不会影响

使用特权

评论回复
23
xuexi_2013| | 2017-5-17 09:42 | 只看该作者
最好不要让中断嵌套执行

使用特权

评论回复
24
王紫豪| | 2017-5-17 14:49 | 只看该作者
硬件不可靠,数组溢出、堆栈溢出,都有可能导致你说的现象。

使用特权

评论回复
25
鹏帝战天下| | 2017-5-17 14:59 | 只看该作者
函数执行的代码是不是很多?

使用特权

评论回复
26
biechedan| | 2017-5-17 22:03 | 只看该作者
这个函数冲突有问题?

使用特权

评论回复
27
biechedan| | 2017-5-17 22:03 | 只看该作者
在中断里面不要执行太多的函数,否则中断不能及时响应。

使用特权

评论回复
28
yirongfu| | 2017-5-18 01:16 | 只看该作者
外方爱 发表于 2017-5-17 09:25
硬件我肯定没问题,我有个疑问,UART0接收数据,我写的是进入400次中断,每次接收一个字符,这样会不会影 ...

我觉得不会影响。
我平常的处理思路跟你一样,中断中只处理接收一个字符和做必要的且尽可能少的标志位,然后到主循环中去做其它处理,比如解析报文。跟进多少次没有影响,收到完整的一串报文了再处理,这个完整可以在中断中进行判断,比如以报头和报尾的特殊字符作为标识,从这个意义上来说,可以进无限次中断。但就像其它坛友说的,如果你这400次接收的字符没有存放好,数组或者堆栈溢出,那就会系统复位。所以,在接收完毕之前,应该确保存储数据的空间足够,接收完毕在数据处理期间,如果还可能有新数据接收,应该确保接收缓冲区足够,及时腾出不再用的空间,其它外设的运行也一样思路,保证好堆栈和数组不溢出、程序流程不进死胡同,那应该不会跑飞的,顶多就是丢失部分发来的数据或者某些事件没响应,但程序不至于跑飞。

使用特权

评论回复
29
外方爱|  楼主 | 2017-5-18 09:28 | 只看该作者
yirongfu 发表于 2017-5-18 01:16
我觉得不会影响。
我平常的处理思路跟你一样,中断中只处理接收一个字符和做必要的且尽可能少的标志位, ...

感谢,应该是数据溢出的问题,感谢提供思路

使用特权

评论回复
30
dirtwillfly| | 2017-5-18 10:51 | 只看该作者
yirongfu 发表于 2017-5-18 01:16
我觉得不会影响。
我平常的处理思路跟你一样,中断中只处理接收一个字符和做必要的且尽可能少的标志位, ...

使用特权

评论回复
31
gygp| | 2017-5-18 23:54 | 只看该作者
这是中断之间存在冲突了吧。

使用特权

评论回复
32
gygp| | 2017-5-18 23:56 | 只看该作者
不同的中断间隔太短,造成了中断信号的挤压。

使用特权

评论回复
33
plsbackup| | 2017-5-19 08:24 | 只看该作者
中断应该执行的太多造成的信号拥挤。

使用特权

评论回复
34
plsbackup| | 2017-5-19 08:25 | 只看该作者
楼主可以试试,简化内部的中断程序。

使用特权

评论回复
35
selongli| | 2017-5-19 17:08 | 只看该作者
从头开始运行就是程序复位了。

使用特权

评论回复
36
selongli| | 2017-5-19 17:11 | 只看该作者
楼主开启看门狗了吗?

使用特权

评论回复
37
1988020566| | 2017-5-20 22:16 | 只看该作者
开启看门狗了吗?

使用特权

评论回复
38
1988020566| | 2017-5-20 22:18 | 只看该作者
感觉楼主这个是中断代码太大造成的呢。

使用特权

评论回复
39
plsbackup| | 2017-5-21 22:04 | 只看该作者
程序跑飞可能是内部中断冲突。

使用特权

评论回复
40
plsbackup| | 2017-5-21 22:05 | 只看该作者
以前两路串口就容易造成信号干扰。

使用特权

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

本版积分规则