Thread 中讨论的其他器件:controlSUITE
您好!
我当前尝试在跳变区6上启用中断。 我想通过使用 TZFRC 寄存器强制执行中断来测试我的中断服务例程。 但是、当我尝试强制执行中断时、我的中断服务例程的调用不会像我所说的那样进行(我在 ISR 中将 GPIO 输出设置为1以验证服务例程是否实际被调用)。 当我在主循环中正常调用 TrippingHandler 时、数字输出设置为1。 但是、当我尝试设置 TZFRC 中的位时、数字输出保持为0、所以我猜我设置了一些寄存器是错误的?
下面是我用来设置中断的代码:
EALLOW; EPwm6Regs.TZSEL.bit.OPTHT6=1;//启用 TZ6 EPwm6Regs.TZCTL.bit.TZA=2的一次性跳闸事件;//无反应/更改 TZ6的 TZ6跳闸; //无响应/更改 TZ6的 EPZ6跳闸;tZ6 = TRIM.TZ6。//寄存器中断处理程序 IER IER|=BIT1;//启用中断2 EDIS;
以下是 ISR 中的代码:
void TrippingHandler (void){ isTripset=true; setoutput (true); //将数字输出设置为1 EALLOW; EPwm6Regs.TZEINT.BIT.OST=0;//禁用 TZ6中断 EPwm6Regs.TZSEL.bit.OSHT6=0;//禁用 TZ6操作 EPwm6Regs.TZCLR.bit.K2=1;// 清除 PIDE.CLART0; //将 PECT.CLK2= 0位设置为确认中断
我使用以下代码强制中断:
EALLOW; EPwm6Regs.TZFRC.bit.OST=1; EDIS;