zigbee学习之中断led

从今天开始我就得开始学习zigBee了,一直由于学校有两个创新项目需要我做,二是发现者现在无线传输还是比较有优势的,顺便学习一下,多掌握点技能毕竟不是坏处,学习zigbee的同时我也得继续研究学习Linux驱动,也会写一些相关的文章。下面是我自己的总结,不会给你一行一行的分析代码,我只是把我理解的东西写上来,也是一些重点,加上自己的总结。不喜欢的勿喷,请多多指教,第一天学习zigbee感觉上手还是挺快的,毕竟有51加上stm32的硬件基础。


#define LED1 P1_0       // P1.0口控制LED1

#define LED2 P1_1       // P1.1口控制LED2
#define LED3 P1_4       // P1.4口控制LED3
#define LED4 P0_2       // P0.2口控制LED4
#define LED5 P0_3      // P0.3口控制LED5


#define KEY1 P0_1       // P0.1口控制S1
#define KEY2 P2_0       // P2.0口控制S2


register configure :
PxSEL &= ~0x02;     //0 通用IO功能,1复用功能  默认为通用的IO功能
PxDIR &= ~0x02;     //0输入,1输出   default  inuput 
PxINP &= ~0x02;     //0上拉、下拉,1三态


P0IEN |= 0x2;    // P0.1 设置为中断方式 1:中断使能 (八位的)
PICTL |= 0x1;    //P0,P1,和P2触发沿设置,1 下降沿触发  0上升沿触发  
(PICTL第0位P0_0到P0_7,第1位P1_0到P1_3,第2位P1_4到P1_7,第3位P2_0到P2_4)
//IEN1 |= 0x20;    //允许P0口中断; 
IEN1 |= 0x20;    //允许P0口中断; 是IEN1里面的第五位
IEN2 |= 0x10;    //允许P1口中断; 是IEN2里面的第四位
IEN2 |= 0x02;    //允许P2口中断; 是IEN2里面的第一位


P0IFG = 0x00;    //初始化中断标志位
EA = 1;          //打开总中断


#pragma vector = PxINT_VECTOR    
__interrupt void P0_ISR(void) 

    DelayMS(10);     //延时去抖
    LED1 = ~LED1;    //改变LED1状态
    PxIFG = 0;       //清某一IO口中断标志 
    PxIF = 0;        //清cpu中断标志 

}


你可能感兴趣的:(zigbee学习之中断led)