在Keil-C下做液晶显示程序时,编译后出现函数递归调用的错误 "RECURSIVE CALL TO SEGMENT" "APPLICATION CONTAINS TOO MANY RECURSIONS" 但程序中没有用什么递归啊,请求帮助。
如下程序中 Disp_Num(int num); Disp_Code(int CodeSn); 中都对CODE(字符表格)操作,若屏蔽对CODE的操作, 错误就没了 // 或者在定义结构体数组存放函数地址时,使用XDATA,错误也没了。
程序框架如下:
//函数声明 void Disp_Page_000(void); void Disp_Page_001(void); void Disp_Page_002(void); void Disp_Page_003(void); void Disp_Page_004(void); void Disp_Page_005(void); void Disp_Page_006(void); ....
//定义结构体 typedef struct xxx { void (*ShowPageDisp)(); };
//结构体数组存放函数地址 code struct xxx LcmShowPage[]={ Disp_Page_001, Disp_Page_002, Disp_Page_003, Disp_Page_004, Disp_Page_005, Disp_Page_006 };
void main() { //函数调用 LcmShowPage[0].ShowPageDisp(); }
//函数定义 void Disp_Page_000(void) { Disp_Num(123); // 显示数据函数 Disp_Code(123); // 显示字符函数 }
void Disp_Page_001(void) { Disp_Num(234); Disp_Code(234); } .....
|