#include “ioCC2530.h” // 引用头文件,包含对CC2530的寄存器、中断向量等的定义
/********************************************************************/
#define LED1 P1_0 // P1_0定义为P1.0
#define SW1 P1_2 // P1_2定义为SW1
/*********************************************************************
-
函数名称:init
-
功 能:初始化系统IO,使得P1_2引脚能接受并处理中断
-
入口参数:无
-
出口参数:无
-
返 回 值:无
********************************************************************/
void init()
{ //P1SEL &=~0x3D; // 设置LED1、SW1为普通IO口
P1DIR |= 0x39 ; // 设置LED1为输出
P1DIR &= ~0x04; //Sw1按键在 P1.2,设定为输入
P1 &= ~0x39 ;
PICTL &= ~0x02; //配置P1口的中断边沿为上升沿产生中断
P1IEN |= 0x04; //使能P1.2中断
IEN2 |= 0x10; //使能P1口中断EA = 1; //使能全局中断
}
/*********************************************************************
- 函数名称:EINT_ISR
- 功 能:外部中断服务函数
- 入口参数:无
- 出口参数:无
- 返 回 值:无
*******************************************************************/
#pragma vector=P1INT_VECTOR
__interrupt void P1_INT(void)
{
EA = 0; // 关闭全局中断
/ 若是P1.2产生的中断 */
if(P1IFG & 0x04)
{
LED1=!LED1;
P1IFG &= ~0x04; // 清除P1.2中断标志
}
EA = 1; // 使能全局中断
}
/*********************************************************************
- 函数名称:main
- 功 能:main函数入口
- 入口参数:无
- 出口参数:无
- 返 回 值:无
********************************************************************/
void main(void)
{
init(); //调用初始化函数
while(1)
{
}
}