从零开始ZigBee学习(定时器1)

由于博主用的板子和所看视频不同,故定时器就直接看的开发手册进行的学习

目录

一、定时器1

二、寄存器

三、参考代码


一、定时器1

二、寄存器

T1CNTH(0XE3) - 定时器1计数器高位

T1CNTL(0XE2) - 定时器1计数器低位

T1CTL(0XE4) - 定时器1的控制和状态

  

T1START(0XAF) - 定时器1状态

T3CC0(0XCD)-定时3通道0捕获/比较值

 

三、参考代码

#include <ioCC2530.h>

#define BLED P1_0
#define YLED P1_1
#define LEDOPEN 1
#define LEDCLOSE 0

unsigned int counter=0; // 溢出次数
unsigned char LEDFlag; // 闪烁标志
void InitT1(void);
void InitLED(void);

/******************************
* @brief Timer 1 初始化
*****************************/
void InitT1(void)
{
  T1CTL = 0x05;
  T1STAT= 0x21; //通道0,中断使能,8分频;自动重装模式(0x0000->0xffff)
}

void InitLED(void)
{
  P1DIR |= 0x03; // 定义P10、 P11为输出
  YLED = LEDCLOSE;
  BLED = LEDCLOSE;
}

/***************************
* @brief 主函数
***************************/

void main()
{
  InitLED();
  InitT1(); // 初始化定时器T1
  while(1) //查询溢出
  {
    if(IRCON > 0) // 判断溢出
    {
      IRCON = 0; //清溢出标志
      counter ++;
      if(counter == 15) //中断计数, 约0.25s
      {
        counter =0;
        LEDFlag = 1; // 闪烁标志变量置1
      }
    }
    if(LEDFlag)
    {
       YLED = !YLED;
       BLED = !BLED;
       LEDFlag = 0; // 闪烁标志变量置0
    }
   }
}

这个代码理解不难,就是对T1CTL寄存器的工作模式是10、11时不太懂,还有定时器具体技术周期计算不是很懂,有无大佬帮忙解答下

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清园暖歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值