宏定义与函数声明
/**************************************/ /* CC2530例程 */ /*例程名称:定时器(查询方式) */ /*描述:通过定时器T1查询方式控制LED1周期性闪烁 **************************************/ #include <ioCC2530.h> #define uint unsigned int #define uchar unsigned char #define LED1 P1_0 //定义LED1为P1_0口控制 //函数声明 void InitLed(void); //初始化P1口 void InitT1(); //初始化定时器T1 //初始化程序 /*****************************/
初始化
void InitLed(void) { P1DIR |= 0x01; //P1_0定义为输出 LED1 = 0; //LED1灯初始化熄灭 } //定时器初始化 void InitT1() //系统不配置工作时钟时默认使用内部RC振荡,即16MHz { T1CTL=0x0E; //128分频,模模式 T1CC0L=0x12; T1CC0H=0x7A; T1CCTL0 |= 0x04; //开启通道0的输出比较模式 }
主函数
/*************************** * 函数名称:main * 功 能:main函数入口 * 入口参数:无 * 出口参数:无 * 返 回 值:无 ***************************/ void main(void) { uchar count; InitLed(); //调用初始化函数 InitT1(); while(1) { if(T1STAT&0x21==0x21) { T1STAT&=~0x21; ++count; } if(count == 6) //如果溢出次数到达6说明经过了1.5秒 { LED1 = 1; //点亮LED1 } if(count == 8) //如果溢出次数到达8说明经过了2秒 { LED1 = 0; //熄灭LED1 count=0; } } }