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

F28377S调用多个中断时,为什么只能响应一个中断

采用F28377S芯片,调用INT1.1和INT1.7两个中断,如果两个都打开,却只能响应INT1.7,即TIMER0,只有关闭了INT1.7,才能响应INT1.1,即ADCA1,为什么呢?有谁碰到个这种情况吗?请指点一下。

Linda:

您好!

请问关于中断初始化的相关配置代码可否发一下帮您看看.

采用F28377S芯片,调用INT1.1和INT1.7两个中断,如果两个都打开,却只能响应INT1.7,即TIMER0,只有关闭了INT1.7,才能响应INT1.1,即ADCA1,为什么呢?有谁碰到个这种情况吗?请指点一下。

lili ye:

回复 Linda:

关于中断向量表调用的controlSUITE内部给的 InitPieVectTable()函数,没有做改变,

关于ADCA1中断定义为

EALLOW;    PieVectTable.ADCA1_INT = &adca1_isr;    EDIS;    IER |= M_INT1;    PieCtrlRegs.PIEIER1.bit.INTx1 = 1;

定时器及其中断定义为

EALLOW;    PieVectTable.TIMER0_INT = &cpu_timer0_isr;    EDIS;    InitCpuTimers();    ConfigCpuTimer(&CpuTimer0, 5, 100);    StartCpuTimer0();    PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

程序中关于中断初始化代码如下:

 DINT;    InitPieCtrl();    IER = 0x0000;    IFR = 0x0000;    InitPieVectTable();

EINT;           

 ERTM;

采用F28377S芯片,调用INT1.1和INT1.7两个中断,如果两个都打开,却只能响应INT1.7,即TIMER0,只有关闭了INT1.7,才能响应INT1.1,即ADCA1,为什么呢?有谁碰到个这种情况吗?请指点一下。

lili ye:

回复 lili ye:

ADCA1 触发源是EPWM1 SOC触发

采用F28377S芯片,调用INT1.1和INT1.7两个中断,如果两个都打开,却只能响应INT1.7,即TIMER0,只有关闭了INT1.7,才能响应INT1.1,即ADCA1,为什么呢?有谁碰到个这种情况吗?请指点一下。

lili ye:

回复 lili ye:

通过测试发现,是定时器定义的太快了,将其速度降下来,两个中断就都能使能了。

现在的问题是在DAC中,寄存器DACCTL->SYNCSEL 选择是PWMSYNC1,而ADC中断源触发选择的是ePWM1 的SOC,这两个会不会冲突,或者相互抢占资源

采用F28377S芯片,调用INT1.1和INT1.7两个中断,如果两个都打开,却只能响应INT1.7,即TIMER0,只有关闭了INT1.7,才能响应INT1.1,即ADCA1,为什么呢?有谁碰到个这种情况吗?请指点一下。

lili ye:

回复 lili ye:

DAC相关寄存器DACCTL->SYNCSEL=PWMSYNC1  ADC的中断触发源为ePWM1的SOC,这两者会不会冲突

赞(0)
未经允许不得转载:TI中文支持网 » F28377S调用多个中断时,为什么只能响应一个中断
分享到: 更多 (0)