大家好、
我的测试目的是 CLA 任务1和 ADC_ISR 可由 ADCINT1同时触发。 然后 CLA 任务1完成将触发 CLA_ISR。
我对 PieCtrlRegs 中的 PIEIER1和 PIEIRE10感到困惑。
在 PIE 中断矢量表中、我发现 ADCINT1可以分配到下图中的 INT1.1或 INT10.1:
使用 INT1.1可以实现我的目标、但将替换为 INT10.1将转到 ISR_ILLEGCE
如下所示的使用代码 :
工作条件:
EALLOW;
PieVectTable.ADCINT1 =&ADC_ISR;
PieVectTable.CLA1_INT1 =&Cla1_isr1;
PieCtrlRegs.PIEIER1.bit.INTx1 = 1; //ADCINT1
PieCtrlRegs.PIEIER11.bit.INTx1 = 1; //CLA1_INT1
EDIS;
IER |= M_INT1;
IER |= M_INT11;
EINT;
ERTM;
不可行的条件:
请按以下方式替换代码
PieCtrlRegs.PIEIER1.bit.INTx1 = 1; => PieCtrlRegs.PIEIER10.bit.INTx1 = 1;
IER |= M_INT1; => IER |= M_INT10;
(在0x0001至0x0200的中断替换中的 PieCtrlRegs.PIEACK)
其他条件相同。
那么、什么可能会导致 ISR_ILLEAGE。 有没有我没有注意到的东西吗?
谢谢。