中断标志位实验心得

中断标志位实验心得

在做CC2530开发板一些实验时候,经常会遇到一些最基本的问题,比如清中断标志位时候,是先清源中断寄存器还是先是清CPU中断标志寄存器。

初始化中断标志:
P0IFG = 0X00;
在下面电路中需要将引脚定义为终端触发引脚即 P0_1后面连接开关+GND;这里写图片描述

单向导电二极管负极为低电平时该发光二极管点亮,否则处于熄灭状态,因此,在初始化开关函数时候,有如下定义:

    P0IEN |= 0x2;    // P0.1 设置为中断方式 1:中断使能
    PICTL |= 0x1;    //下降沿触发   
    IEN1 |= 0x20;    //允许P0口中断; 
    P0IFG = 0x00;    //初始化中断标志位
    EA = 1;          //打开总中断

当 P0_1为低电平时候即P0_1=0,触发中断,

#pragma vector = P0INT_VECTOR 

通过中断函数入口地址进入中断函数以此实现相应功能。

由于按键存在一定的振动,因此,需要进行消抖,该部分功能具体实现如下

... if(P0IFG>0)
     {
      DelayMS(10);
      if(P0IFG>0)
      {
        ......  
        }
      }

上述的P0IFG是端口0中断状态标志,端口0中bit7~bit0为输入中断状态标志。当输入端口中断请求未决时,则其相应标志位置1即可。

清中断标志命令
P0IFG = 0;
P0IF = 0;

问题:清中断标志是先清源中断寄存器还是CPU中断标志寄存器?
答:这要看中断触发方式是脉冲或者边沿触发还是电平触发方式。如果为前者,则先清CPU中断标志寄存器;否则若是电平触发方式,则先清源中断标志寄存器。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值