一个PIC编程问题 折磨死寡人了快。。不知道你们遇到过没有 进来看看

2020-02-09 09:31发布

编译器是PICC9.80
pic16f887

做的是一个LCD12864的菜单程序。
不带字库的那种。所以存了很多字库代码。而且后来程序也比较大

现在的问题是  1.硬件堆栈 10级
              2.0. can't find 0x79A words (0x79a withtotal) for psect "stringtext" in segment "STRCODE" (largest unused contiguous range 0x74D)报这个错误。

分析了一下原因:

1.PIC的ROM分段  2K为一段。所以函数不能大于2K。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
nome
2020-02-09 14:36
开始我将上面的3个函数合并一个函数   函数执行完后跳转错误。  分开后就没事了。
后来我将下面的函数也分开。结果 还是跳转出错
void Work_wait1(void)
{
         Drew_Frame_work();
      Word(0,2,2,Zheng_Light,Language_select_4byte[Language]);   //电压
          Word(5,2,3,Zheng_Light,Language_select_6byte[Language]);   //计数器
         Word(0,18,2,Zheng_Light,Language_select_4byte[Language]+48);   //频率
         Word(0,49,2,Zheng_Light,Language_select_4byte[Language]+2*48);   //触发

}
void Work_wait2(void)
{
          Word(2,49,2,Zheng_Light,Language_select_4byte[Language]);   //电压
         Word(4,49,2,Zheng_Light,Language_select_4byte[Language]+48);   //频率
         Word(6,49,2,Zheng_Light,Language_select_4byte[Language]+4*48);   //设置
         Word(4,2,1,Zheng_Light,&Symboy[Disp_data][0]);   //显示 1.能量  2.电压 3.级数    mj .v,l
         Word(4,18,1,Zheng_Light,&Symboy[Disp_Hz][0]);   //HZ
         Word(1,33,1,Zheng_Light,&Symboy[Disp_C][0]);   //C
}
void Work_wait3(void)
{
          Send_Dispdata(Disp_data);
         Send_Dispdata(Disp_Hz);
         Send_Dispdata(Disp_C);
         Send_Dispdata(Disp_Count);
         Update_Frame_work();   
}
//-------------------------------------------
void Work_wait(void)
{
         Work_wait1();
         Work_wait2();
        Work_wait3();
        Beep_Long();      
}

一周热门 更多>