工具/软件:Starterware
您好!
我正在 CC2541上设置模拟比较器、一切都正常、但有问题:即使没有与指定中断相关的标志、也会调用中断服务例程?
在软件初始化中、我执行以下操作:
EA = 1;//通过设置相应的使能位来单独启用或禁用每个中断源。
P0IFG = 0;//清除 PORT0的交叉标志
PICTL = 0x01;//在 P0的 fallaing 边沿上进行交叉
CMPCTL |= CMPCTL_EN;//为 P0_5和 P0_4启用比较器
P0IEN = 0x20;//启用 PORT0_5中断
P0IE = 1;//启用 PORT0中断
P0IFG = 0;//清除 PORT0的交叉标志
以下是中断服务例程:
#pragma vector = P0INT_vector
_interrupt void PORT0_ISR (void)
{
P0IE = 0;//禁用 PORT0中断
P0IEN = 0x00;//禁用 PORT0_5中断
IF (P0IFG 和0x20)
PULSE_INPUT_COUNTER++;
//清除 PORT0_5中断标志
P0IFG = 0;
CMPCTL = 0x02;
P0IE = 1;//启用 PORT0中断
P0IEN = 0x20;//启用 PORT0_5中断
}
谢谢你