标签:led1 led2 void STATE while flag 实验 cc2530 代码
主函数
#include<ioCC2530.h>
#include"common.h"
#define uint unsigned int
#define uchar unsigned char
#define slave_node
enum STATE{STOP_STATE,RUN_STATE};
enum STATE state=STOP_STATE;
uchar led1_flag=0,led2_flag=0,key1_flag=0,key2_flag=0;
void InitTimer1(void)
{
CLKCONCMD|=(0x01<<3);
T1CC0L=62500&0xff;
T1CC0H=((62500&0xff00)>>8);
T1STAT &=~0x02;
TIMIF |=0x40;
IEN1|=(0x01<<1);
T1CTL = 0x0F;
}
void InitExternalInterrupt(void)
{
P0INP|= 0x82;
PICTL|= 0x01;
P0IEN|= 0x02;
IEN1|= 0x20;
}
void Ledfun(){
if(led1_flag == 0&&led2_flag == 0){
LED1=0;LED2=0;
}
if(led1_flag == 1&&led2_flag == 0){
LED1=1;LED2=0;
}
if(led1_flag == 0&&led2_flag == 1){
LED1=0;LED2=1;
}
if(led1_flag == 1&&led2_flag == 1){
LED1=1;LED2=1;
}
}
void main(void)
{
InitLed();
SystemClockSourceSelect(XOSC_32MHz);
InitTimer1();
InitExternalInterrupt();
EA = 1;
while(1){
Ledfun();
}
}
#pragma vector=P0INT_VECTOR
__interrupt void EINT_ISR(void)
{
EA = 0;
if(P0IFG & 0x02)
{
while(!P0_1);
Delay(10);
while(!P0_1);
key1_flag=!key1_flag;
P0IFG &=~0x02;
}
if(P0IFG & 0x80)
{
while(!P0_7);
Delay(10);
while(!P0_7);
key2_flag=!key2_flag;
P0IFG &=~0x80;
}
EA=1;
}
#pragma vector=T1_VECTOR
__interrupt void T1_ISR(void)
{
T1STAT &=~0x20;
if(key1_flag)
led1_flag = !led1_flag;
else led1_flag = 0;
if(key2_flag)
led2_flag = !led2_flag;
else led2_flag = 0;
}
标签:led1,led2,void,STATE,while,flag,实验,cc2530,代码 来源: https://blog.csdn.net/FuckerGod/article/details/115448072
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。