#include <ioCC2530.h>
//定义数据类型
#define uchar unsigned char
#define uint unsigned int
//定义控制口
#define LED1 P1_0 //LED1的控制口
#define LED2 P1_1 //LED2的控制口
//声明函数区
void InitLed(); //P1口初始化
void InitT3();
//定义变量区
uint count = 0;
//函数定义区
/**************************
*函数名称:InitLed()
*函数功能:LED初始化
*入口参数:无
*出口参数:无
*返回值 :无
**************************/
void InitLed()
{
P1SEL &= ~0x01;//定义P1_0为普通IO口
P1DIR |= 0x01;//定义P1_0为输出
LED1 = 0;//初始化LED1熄灭
//LED2 = 0;//初始化LED2熄灭
}
/**************************
*函数名称:InitT3()
*函数功能:初始化T1函数
*入口参数:无
*出口参数:无
*返回值 :无
**************************/
void InitT3()//系统时钟不配置默认为2分频,即16MHz
{
T3CTL |= 0x08;//开溢出中断
T3IE = 1; //开总中断和T3中断
T3CTL |= 0xE0;//128分频,128/16000000*N = 05S,N = 65200
T3CTL &= ~0x03;//自动重装00->0xff 65200/256=254次
T3CTL |= 0x10;//启动定时器
EA = 1;//开总中断
}
/**************************
*函数名称:main()
*函数功能:主函数
*入口参数:无
*出口参数:无
*返回值 :无
**************************/
void main()
{
InitLed();
InitT3();
while(1);
}
/**************************
*函数名称:T3_ISR(void)
*函数功能:定时器中断处理函数
*入口参数:无
*出口参数:无
*返回值 :无
**************************/
#pragma vector = T3_VECTOR //定时器T3
__interrupt void T3_ISR(void)
{
IRCON = 0x00;//清除中断标志,也可以硬件自动清除
if( ++count > 254 )//254次中断后LED取反,闪烁一轮,约0.5秒
{
count = 0;//计数清零
LED1 = ~LED1;
}
}
CC2530 定时器T3
最新推荐文章于 2021-05-25 11:31:21 发布