打印
[STM8]

中断过多导致程序跑飞????

[复制链接]
楼主: xiaolanghahaha
手机看帖
扫描二维码
随时随地手机跟帖
21
kaly_liu| | 2013-5-29 17:21 | 只看该作者 回帖奖励 |倒序浏览
还没用过这么多的中断···

使用特权

评论回复
22
andyding| | 2013-5-29 21:59 | 只看该作者
同意14楼观点

使用特权

评论回复
23
bushiniu| | 2013-5-29 22:49 | 只看该作者
说说我最近的一个自动重启的例子,数组下标越界,楼主查查,还有一个异常状况是读取指针数值之前,指针未定义,有些问题,编译软件也不会报错的

使用特权

评论回复
24
mmuuss586| | 2013-5-30 09:03 | 只看该作者
xiaolanghahaha 发表于 2013-5-29 13:43
哦,那问一下,您对中断的处理,优先级的设置是什么样的呢?还有在中断中的操作,是有操作很多,还是仅仅 ...

优先级都按默认设置,说白了都没设置。
中断程序:我都没几句,只接收程序。
所有任务都放中断处理。
程序大的话,可以加个操作系统。

使用特权

评论回复
25
xiaolanghahaha|  楼主 | 2013-5-30 10:15 | 只看该作者
mmuuss586 发表于 2013-5-30 09:03
优先级都按默认设置,说白了都没设置。
中断程序:我都没几句,只接收程序。
所有任务都放中断处理。

我把所有中断处理函数的开头都加上了关闭总中断,处理结束后再开启总中断,就不会出现这种问题了,不过感觉这么改不是个办法呀

使用特权

评论回复
26
mmuuss586| | 2013-5-30 11:54 | 只看该作者
xiaolanghahaha 发表于 2013-5-30 10:15
我把所有中断处理函数的开头都加上了关闭总中断,处理结束后再开启总中断,就不会出现这种问题了,不过感 ...

估计你中断干的事情太多了,不关,中断响应不过来,导致及时清中断标志位。

使用特权

评论回复
27
figo20042005| | 2013-5-30 16:22 | 只看该作者
xiaolanghahaha 发表于 2013-5-29 16:32
嗯,您说的中断中的变量指的是?

就是你在中断里计算应用的那些变量

使用特权

评论回复
28
hkcj| | 2013-5-30 19:25 | 只看该作者
个人觉得中断过多应该不会造成这个问题   感觉还应该是别的地方的问题   仔细查一查   

使用特权

评论回复
29
hkcj| | 2013-5-30 19:26 | 只看该作者
中断如果开的比较多   可能会占用资源   但是应该不会出现你的问题    单步调试看看

使用特权

评论回复
30
huangfeng33| | 2013-6-3 16:03 | 只看该作者
感觉不关中断的事,解决了问题要记得分享啊。继续关注中……

使用特权

评论回复
31
cjhk| | 2013-6-3 18:52 | 只看该作者
当中断多了   应该会出现楼主的说的问题   感觉这一块   需要好好看看   顶一个

使用特权

评论回复
32
xiaolanghahaha|  楼主 | 2013-7-2 10:05 | 只看该作者
最终发现了出现这种问题的原因了。。
由于强制数据类型转换造成的,float转换为u8,只要存在这句话,在有can通讯的时候,就会出现程序跑飞的现象,不知道是编译器的问题还是单片机本身的bug

使用特权

评论回复
33
sun1238898| | 2013-7-2 10:35 | 只看该作者
我感觉是中断进入过程当中,工作时间的长短而引起的问题。

使用特权

评论回复
34
xiaolanghahaha|  楼主 | 2013-7-2 11:12 | 只看该作者
sun1238898 发表于 2013-7-2 10:35
我感觉是中断进入过程当中,工作时间的长短而引起的问题。

我找到原因了,找了好几个月,最终发现
就是由于强制数据类型转换造成的,float转换为u8,只要存在这句话,在有can通讯的时候,就会出现程序跑飞的现象,不知道是编译器的问题还是单片机本身的bug

使用特权

评论回复
35
yzzly| | 2013-7-2 12:45 | 只看该作者
程序逻辑混乱导致程序死锁。

使用特权

评论回复
36
sun1238898| | 2013-7-2 14:34 | 只看该作者
xiaolanghahaha 发表于 2013-7-2 11:12
我找到原因了,找了好几个月,最终发现
就是由于强制数据类型转换造成的,float转换为u8,只要存在这句话 ...

你这个问题,好像有好几个人都遇到你这样的问题了呀。你用iar编译器试一下,可能stvd不是很好用。

使用特权

评论回复
37
xiaolanghahaha|  楼主 | 2013-7-2 16:21 | 只看该作者
sun1238898 发表于 2013-7-2 14:34
你这个问题,好像有好几个人都遇到你这样的问题了呀。你用iar编译器试一下,可能stvd不是很好用。 ...

主要是号几万行代码已经写好了。。移植过去代价太大了

使用特权

评论回复
38
sun1238898| | 2013-7-2 17:27 | 只看该作者
我刚给一个朋友点思路,他解决了,我把链接给你看下,你参考一下,看看。

https://bbs.21ic.com/icview-578266-1-1.html

使用特权

评论回复
39
xiaolanghahaha|  楼主 | 2013-7-2 17:29 | 只看该作者
sun1238898 发表于 2013-7-2 17:27
我刚给一个朋友点思路,他解决了,我把链接给你看下,你参考一下,看看。

https://bbs.21ic.com/icview-578 ...

。。。。。。。。。。。亲不看用户名的么,都是我发的帖子呀,我因为解决了问题,才把这个帖子顶上来的

使用特权

评论回复
40
sun1238898| | 2013-7-2 17:31 | 只看该作者
哦,人太多了。抱歉啊,我给你的留言看看了吗。

使用特权

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

本版积分规则