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

F28069外部中断只进入一次

配置好后,发现上电后只进入一次中断,后面给上下升沿就再也没进中断了。

请问是我配置问题吗?程序如下:

PIE_registerPieIntHandler(obj->pieHandle, PIE_GroupNumber_1, PIE_SubGroupNumber_4,(PIE_IntVec_t)&xint1_isr);

PIE_enableInt(obj->pieHandle, PIE_GroupNumber_1, PIE_InterruptSource_XINT_1);

PIE_setExtIntPolarity(obj->pieHandle, CPU_ExtIntNumber_1,PIE_ExtIntPolarity_FallingEdge);

PIE_enableExtInt(obj->pieHandle, CPU_ExtIntNumber_1);

CPU_enableInt(obj->cpuHandle, CPU_IntNumber_1);

// GPIO
GPIO_setMode(obj->gpioHandle,GPIO_Number_12,GPIO_12_Mode_GeneralPurpose);
GPIO_setDirection(obj->gpioHandle, GPIO_Number_12, GPIO_Direction_Input);
GPIO_setQualification(obj->gpioHandle, GPIO_Number_12, GPIO_Qual_Sync);

__interrupt void xint1_isr(void)
{
PIE_Obj *pie = (PIE_Obj *)myPie;

Xint1Count++;

pie->PIEACK = (1 << PIE_GroupNumber_1);
// Acknowledge this interrupt to get more from group 1
//PIE_clearInt(myPie, PIE_GroupNumber_1);
}

望得到解答,谢谢!

Green Deng:

一般我们在中断的时候会 清除外设中断标志, 置位PIEACK。 不能再次进入中断应该是相关标志位没有清除导致。你可以进入调试模式,然后在进入中断服务函数的时候,查看相关中断标志位寄存器,看那些标志位在跳出中断服务程序后还是置位状态。

user6301887:

回复 Green Deng:

谢谢!仿真下看了PIEACK的值,程序开始运行时,是0;进一次中断后,变为0x0001;后面值就不变了。是我清标志位的方式错了吗?

赞(0)
未经允许不得转载:TI中文支持网 » F28069外部中断只进入一次
分享到: 更多 (0)