ZigBee外部中断控制

1,首先我们来认识一下几个寄存器

  IEN0,IEN1,IEN2               //各外设或端口中断使能寄存器
  P0IEN、P1IEN,P2IEN       //通用I/O 中断使能寄存器
  PICTL                                   //端口中断控制为位,配置上升沿触发中断还是下降沿触发中断
  EA                                        //全局中断总开关,这个开关在IEN0寄存器的第七位,可位寻址。

如果想设置中断优先级可通过设置IP0,和IP1这两个寄存器来实现!

下面上数据手册说明图片

ZigBee外部中断控制_第1张图片

ZigBee外部中断控制_第2张图片

ZigBee外部中断控制_第3张图片

ZigBee外部中断控制_第4张图片

ZigBee外部中断控制_第5张图片

ZigBee外部中断控制_第6张图片

当使用外部中断的时候只需要配置以上的相关寄存器位就可以了!

2,例;使用P1_1端口的外部中断来使LED灯亮灭

#include 

#define uint8_t unsigned char
#define uint16_t unsigned int
#define LED     P1_0
#define Key     P1_1



//  软件延时函数,使用不同的系统时钟,延时不一样
void delay_ms(uint16_t n)
{
    uint16_t i=0,j=0;
    for(i=0;i

其中中断子函数写法有点特别

#pragma vector = “P1INT_VECTOR ”                 这一句前面等号前面的固定写法“”里面的是中断源,这个可以在头文件里面找到

__interrupt void “Point_1”()                                 这一句前面void前面的也是固定写法“”里面的是自己定义的函数名称

当然在中断函数的最后我们不要忘记了清楚中断标志哦,不然CPU会一直进入中断函数!

好了,以上就是中断的用法了!

你可能感兴趣的:(ZigBee)