CC2530 定时器T3

#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;
  }
  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值