现象如下,调整上述代码中的设置基准(PWM信号占空比)超过一定值(CathodeWorkPar.OutRefValue数据值超过80),单片机仿真进入硬件中断,后面进行了以下测试;
1、程序分为BootLoad和APP两个部分,如果单独只烧录APP程序(更改起始地址),程序可以正常运行,给入任何占空比程序工作正常;
2、更改PWM输出通道,程序运行正常;
3、减小单片机启动文件中的堆或者栈的分配空间,程序也能恢复正常工作;这点我不太能理解,起初我是增加了栈的空间,后来测试发现不行,然后减小后发现工作正常,后保持栈空间不变减小堆空间发现也能工作正常,这是不是表示我程序的RAM溢出了啊,实际看编译结果两个程序应该只用了15k左右,选的单片机程序时20k的;
现在问题已经通过优化程序解决,就是这个问题点一直想不明白,有了解的大能麻烦指导下 |