程序运行到一个 子函数里面,总是莫名其妙的复位

2020-01-17 19:08发布

我用的C8051,定时器3中断之后,关了总中断,运行子函数,包括一些比较复杂的算式,要循环好多次,完成之后再开总中断,可是总是循环2次就复位了,看门狗是关着的。 找不出原因来了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
zouzhichao
1楼-- · 2020-01-19 12:14
一个float4字节,64x4=256,单片机在函数里开这么大的数组,很危险的用法哦,把那个数组挪到全局变量里吧
wye11083
2楼-- · 2020-01-19 12:50
zouzhichao 发表于 2016-5-21 15:36
一个float4字节,64x4=256,单片机在函数里开这么大的数组,很危险的用法哦,把那个数组挪到全局变量里吧 ...

恐怕早就溢出鸟。
yangsen
3楼-- · 2020-01-19 14:39
 精彩回答 2  元偷偷看……
摄氏零度
4楼-- · 2020-01-19 19:10
单步调试。。
pengshicao
5楼-- · 2020-01-20 00:02
等式太长,需要大量堆栈.堆栈溢出.如a=b*c+d*e+f*g+h*l+m*n+....;
改成:a=b*c;a+=d*e;a+=f*g;a+=h*l;a+=m*n;a+=......;试试.
MCUStudent
6楼-- · 2020-01-20 01:32
在程序能运行的情况下,最好只留下有问题的部分一步一步的试,应该能查出问题的。

一周热门 更多>