CC2541开发之中断

  • 630183258
  • LV4工程师
  • |      2016-04-09 11:12:58
  • 浏览量 1114
  • 回复:1

1、相关寄存器

PxIEN(x为0-2): Px 中断屏蔽寄存器

PICTL:端口中断控制

IIEN1.P0IE: P0 中断屏蔽位

IEN2.P1IE: P1  中断屏蔽位

IEN2.P2IE: P2  中断屏蔽位

PxIFG:IO中断标志寄存器

PxIF:IO中断标志位

2、程序


#include

typedef unsigned char uchar;
typedef unsigned int  uint;

#define LED1 P1_2      // P1.0口控制LED1
#define KEY1 P0_0      // P0.0口控制S1


void DelayMS(uint msec)

    uint i,j;
    
    for (i=0; i         for (j=0; j<535; j++);
}


void InitLed(void)
{
    P1DIR |= 0x04;   //P1.0定义为输出口
    LED1 = 0;        //LED1灯灭 
}


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


#pragma vector = P0INT_VECTOR    
__interrupt void P0_ISR(void) 

    DelayMS(10);     //延时去抖
    LED1 = ~LED1;    //改变LED1状态
    P0IFG = 0;       //清中断标志 
    P0IF = 0;        //清中断标志 



void main(void)
{
  
    InitLed();   //设置LED灯相应的IO口
    InitKey();   //设置S1相应的IO口
    while(1)
    {
    }
}



  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:1
bblong 2016-06-06
很棒很棒!
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子