您好、C2000专家!
我正在编写用于电机控制的裸机代码。
我有与定时器1和定时器2触发的两个中断嵌套相关的问题。
具体而言、ISR2由计时器2触发、ISR1由计时器1触发。
首先, 让我澄清一下 两个中断的嵌套效果很好:我可以在 ISR2中嵌套 ISR1。
但是、我注意到如果 ISR1在 数学运算期间内嵌套 ISR2、则会出现一些问题。
如下图所示:
VADC =-1.5;
IPCA=vADC/16.6664;
预期结果 IADC =-0.09
已获得的结果 IADC =-0.0312

为什么会发生这种情况?
很明显、我注意到、 如果 我在指令 IADC 执行期间禁用嵌套、则不会出现此问题;IADC = vADC/16.6664。
例如、
IER = 0x0;//禁用嵌套
IPCA=vADC/16.6664;
IER = 0x2000;//启用 嵌套
另一方面,如果我用 IPCA=vADC*0.06000096 (实际上0.06000096是16.6664的倒数)替换前面的等式,问题就不会发生。
我愿意做进一步的说明。
等待您的帮助...
此致、
贝尼托

