首页 新闻 会员 周边

关于CC2530单片机外部中断查询方式的问题

0
悬赏园豆:5 [待解决问题]

CC2530外部中断的中断标志有两个(这里我以P0_4为例)P0IFG和P0IF,检测到相应的中断信号时,标志位应该是会自动置位的,即P0IFG=0X10; P0IF=1;

但是我查询检测时发现只有P0IFG被置位了,P0IF的值却没有改变。代码如下,请各位博友指教!

//外部中断查询方式
#include<ioCC2530.h>
#define led1 P1_0

//主函数
void main()
{
//P1_0 控制led灯
P1SEL&=~0X01;//P1_0 设置为通用I/O口
P1DIR|= 0X01;//P1_0 设置为输出

PICTL|= 0X01;//下降沿引起中断
while(1)
{

if(P0IF==1) //查询P0IF无效 但是如果改为if(P0IFG>0) 查询P0IFG有效
{
led1=~led1;
P0IFG=0X00;
P0IF=0;
}
}
}

下图是调试界面,添加watch后可以看到P0IFG的值是改变了的,但是P0IF的值却没有改变,这让我感到困惑,难道不是都要发生改变吗???

。O秋歌O。的主页 。O秋歌O。 | 初学一级 | 园豆:197
提问于:2018-04-23 14:13
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册