工具/软件:Code Composer Studio
尊敬的所有人:
在我添加 CLA 代码后、我的程序转到 ILLEGAL_ISR。
没有 此代码、一切都正常。 但是、如果 我添加此代码、 程序 将停止。 在 main 中的 for (;;)循环之前、
PieCtrlRegs.PIEIER1.bit.INTx4 = 1;
PieCtrlRegs.PIEIER1.bit.INTx5 = 1;
PieCtrlRegs.PIEIER3.bit.INTx1 = 1;
IER |= M_INT1;
IER |= M_INT3;
IER |= M_INT12;
此外、如果我在 for (;;)中添加此代码、程序会立即停止并使用 ILLEGAL_ISR
EALLOW;
EPwm1Regs.TBPRD = EPWM1_TBPRD;
EPwm2Regs.TBPRD = EPWM1_TBPRD;
EPwm2Regs.TBPHS.bit.TBPHS = EPWM2_TBPHS;
EPwm7Regs.TBPRD = EPWM7_TBPRD;
EPwm1Regs.DBRED.bit.DBRED = EPWM1_DB;
EPwm1Regs.DBFED.bit.DBFED = EPWM1_DB;
EPwm2Regs.DBRED.bit.DBRED = EPWM2_DB;
EPwm2Regs.DBFED.bit.DBFED = EPWM2_DB;
EPwm3Regs.DBRED.bit.DBRED = EPWM3_DB;
EPwm3Regs.DBFED.bit.DBFED = EPWM3_DB;
EDIS;
我尝试了
RAM 内存分配 、因为有人说它是因为 RAM 内存。
2. 我在 main()的第一条语句上设置断点,然后 运行。 看起来不错、但程序在 for (;)循环的第一条语句中以非法 ISR 停止
我搜索了几个示例:ePWM、GPIO、ADC、计时器、CLA、 因为我使用的是全部。 一些示例(ePWM)在启用全局中断后编辑 PieCtrlRegs、其余示例则不是。 这让我感到困惑、但我认为这不是问题的原因。
此外、如果我删除'Cla1ForceTaskxandWait();'、Clataskes 也不起作用;除了设置"CLA1TASRCSKEL1"之外、我是否必须执行任何设置才能使用 ePWM 触发器运行 CLA 任务? CLA_TRIG_EPWM1INT?
我随函附上 main.c。欢迎您提出任何建议、请访问 advance.e2e.ti.com/.../6825.main.c、谢谢您