部件号: TMS320F28379D
您好、
我有一个使用新函数方法头文件的工作闭环矢量控制代码。 我正在使用 EPWM1 INT 来计算控制代码、并使用 EPWM6 INT 来更新设置。
我想实现中断嵌套、在这种情况下 EPWM1 INT 可能被称为 Whille EPWM6 INT 正在进行中。
我正在查看样本扩展、其中主要使用基于寄存器的方法、但我在访问 PieCtrlRegs 时遇到了困难。 我收到 PieCtrlRegs 未按预期定义的错误。 我找不到没有任何头文件就可以直接使用的地址、添加基于寄存器的头文件会导致很多错误。
实现此目的的最佳方法是什么? (希望解决与未定义 PieCtrlRegs 相关的错误)
示例代码:(欢迎任何建议或潜在问题)
__ interrupt void epwm6ISR (void)
{
//添加了用于中断嵌套的额外代码
Uint16_t TempPIEIER;
TempPIEIER=PieCtrlRegs.PIEIER3.all; //error
IER |= 0x003; //通过调整 IER 设置全局优先级
IER 且= 0x003;
PieCtrlRegs.PIEIER3.all &= 0x0001; //error//通过调整 PIEIER3 来设置组优先级以允许 INT3.1 中断当前 ISR
PieCtrlRegs.PIEACK.ALL = 0xFFFF; //error//启用 PIE 中断
asm(“ NOP“); //等待一个周期
EINT;
//添加了用于中断嵌套的额外代码
GPIO_writePin (22、1); // GPIO 引脚用于检查代码计算时间
//更新设置和参数||||稍后移至较慢的函数
update_allsettings();//更新过滤器设置
//
//清除该计时器的 INT 标志
//
EPWM_clearEventTriggerInterruptFlag (EPWM6_BASE);
//
//确认中断组
//
INTERRUPT_CLEARACKGROUP (INTERRUPT_ACK_GROUP3);
//device_delay_US (5);
GPIO_writePin (22、0); // GPIO 引脚用于检查代码计算时间
//GPIO_togglePin (24);//GPIO 24 引脚 34
//GPIO_togglePin (16);//GPIO 16 引脚 33
//添加了用于中断嵌套的额外代码
//添加了用于中断嵌套的额外代码
DINT;
PieCtrlRegs.PIEIER2.all = TempPIEIER;//error
添加了用于中断嵌套的额外代码
}
