cc2530-projects/task004/source/code.c
2021-09-24 23:06:46 +08:00

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(;;);
}