TI中文支持网
TI专业的中文技术问题搜集分享网站

使用CLA后,CPU不能相应主程序中的中断程序是怎么回事?

RT,在程序中使用了CLA的__interrupt void Cla1Task2 ( void )进行相关数据的处理,但是发现CPU不能正常响应主程序中的中断了,请大家帮忙分析一下,谢谢~

Eric Ma:

首先确定你有没有正确使能这个CLA中断。

其次是确定有进入CLA任务。

建议你参照例程:C:\ti\controlSUITE\device_support\f2803x\v128\DSP2803x_examples_ccsv5\cla_adc_fir

Eric

RT,在程序中使用了CLA的__interrupt void Cla1Task2 ( void )进行相关数据的处理,但是发现CPU不能正常响应主程序中的中断了,请大家帮忙分析一下,谢谢~

Eric*:

回复 Eric Ma:

Eric Ma,

我用的C语言对CLA编程,调试中可以确定进入了CLA任务中,因为我在CLA任务中读取了ADC的结果赋值给了变量1,并且在主程序中定义了变量2并赋值为a,在CLA任务中对变量2重新赋值为b,调试时确实可以看到变量1跟随ADC的结果寄存器变化,并且变量2的值也变为了b。现在的问题是CLA中的任务都正常执行了,但是主程序中的其他中断函数不能响应了。

在主程序中的CLA返回中断函数如下:

__interrupt void cla1_isr2(){    AdcRegs.ADCINTFLGCLR.bit.ADCINT2 = 1; // Clear ADCINT2 flag reinitialize for next SOC    PieCtrlRegs.PIEACK.all = 0xFFFF;}

还请帮忙分析一下,谢谢~

RT,在程序中使用了CLA的__interrupt void Cla1Task2 ( void )进行相关数据的处理,但是发现CPU不能正常响应主程序中的中断了,请大家帮忙分析一下,谢谢~

Eric Ma:

回复 Eric*:

查看一下初始化函数中有没有下面的代码:

EALLOW;

//— Enable CLA task interruts Cla1Regs.MIER.all = 0x0001; // Enable CLA interrupt 1

EDIS; // Disable EALLOW protected register access

//— Enable the CLA interrupt PieCtrlRegs.PIEIER11.bit.INTx1 = 1; // Enable CLA Task1 in PIE group #11 IER |= 0x0400; // Enable INT11 in IER to enable PIE group 11

赞(0)
未经允许不得转载:TI中文支持网 » 使用CLA后,CPU不能相应主程序中的中断程序是怎么回事?
分享到: 更多 (0)