pic堆栈溢出,真痛苦。。。

2020-02-09 11:46发布

程序在进入串口中断时容易复位,程序复位。。。。。。怀疑是堆栈溢出了。。。。。。。。
难道重新编写程序?
程序子程序好多。。。。。不知是哪一块出问题。。。。。
特意试了pic
#include<pic.h>
volatile unsigned char i=0;
fun_9()
{
        i=9;
//        fun_9();
        i=9;       
}
fun_8()
{
        i=8;
        fun_9();
        i=8;       
}
fun_7()
{
        i=7;
        fun_8();
        i=7;       
}
fun_6()
{
        i=6;
        fun_7();
        i=6;       
}
fun_5()
{
        i=5;
        fun_6();
        i=5;       
}
fun_4()
{
        i=4;
        fun_5();
        i=4;       
}
fun_3()
{
        i=3;
        fun_4();
        i=3;       
}
fun_2()
{
        i=2;
        fun_3();
        i=2;       
}
fun_1()
{
        i=1;
        fun_2();
        i=1;       

}
main()
{

        while(1)
        {
                i=0;
                fun_1();
                i=0;
        }

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
yangsen
1楼-- · 2020-02-09 15:05
硬件堆栈的单片机子程序嵌套调用绝不超过两层,尽量不传参数(用全局变量)。感觉和汇编差不多。
hexenzhou
2楼-- · 2020-02-09 17:21
你这个是特意让它溢出的,何来痛苦之说?痛苦来自你做项目的时候堆栈溢出了,而大多数时候你难以察觉。
Jmjmjm
3楼-- · 2020-02-09 22:08
就是做项目的时候,堆栈溢出了啊
yangsen
4楼-- · 2020-02-10 00:06
把不是频繁调用的子程序改用宏
Jmjmjm
5楼-- · 2020-02-10 01:12
 精彩回答 2  元偷偷看……
millwood0
6楼-- · 2020-02-10 04:40
"难道重新编写程序? "

you are purposely trying to create stack overflow.

any computer, if you do it purposely, will have its stack overflow. PIC is no exception in that regard.

一周热门 更多>