88 lines
1.6 KiB
C
88 lines
1.6 KiB
C
#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(;;);
|
|
} |