#include "ioCC2530.h" #define LED1 (P1_0) #define LED2 (P1_1) #define SW1 (P1_2) unsigned char count = 0; unsigned char count_btn = 0; void initial_gpio(void){ P1SEL &=~0X07; P1DIR |=0X03; P1DIR &=~0X04; LED1 = 0; LED2 = 0; } void initial_interrupt(void){ IEN2 |=0X10; P1IEN |=0X04; PICTL |=0X02; // T1CTL |=0X0C; //最大值 T1CC0L = 12500 & 0xff; //低八位 T1CC0H =(12500 & 0xff00) >>8; //高八位 T1IE = 1; T1OVFIM = 1; EA = 1; T1CTL |=0X03; IP1=0X10; } #pragma vector = T1_VECTOR __interrupt void control_Timer(void){ T1STAT &=~0X20; count++; if(count == 1){ LED1 = 1; LED2 = 0; } if(count == 2){ LED1 = 0; LED2 = 1; count = 0; } } #pragma vector = P1INT_VECTOR __interrupt void btn(void){ if(P1IFG & 0X04){ count_btn++; switch(count_btn){ case 1: T1CC0L =18750 & 0xff; T1CC0H =(18750 & 0xff00) >>8; break; case 2: T1CC0L =(62500)& 0xff; T1CC0H =((62500)& 0xff00)>>8; break; case 3: T1IE = 0; T1OVFIM = 0; LED1 =0; LED2 =0; break; default: T1IE = 1; T1OVFIM = 1; T1CC0L = 12500 & 0xff; T1CC0H = (12500 & 0xff00) >>8; count_btn = 0; } } P1IFG &=~0X04; P1IF = 0; } void main(){ initial_gpio(); initial_interrupt(); for(;;); }