CC2540关于定时器模模模式的设置

本文介绍了CC2540微控制器中定时器3的倒计数模式设置,通过代码详细阐述了如何配置寄存器实现定时器3的自由模式、比较模式以及中断处理。在倒计数模式下,当计数到0时,硬件会自动关闭定时器,需要在中断服务程序中重新开启。示例代码展示了如何利用定时器3进行2秒和1秒周期的LED闪烁控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接上代码,代码有详解
/*
    本程序为定时器3倒计数模式中断方式
    关于定时器总结:
    模式为自由模式时,只需要常规设置寄存器即可;
    模式为模模模式时,正/倒计数模式时,只需要添加设置T3CCTL0寄存器为比较模式即可
    模式为倒计数模式时,由于倒计数到0x00时,硬件会关闭定时器,如果想要连续使用,
一定在中断或则溢出标记中重新打开定时器!
*/
#include <ioCC2540.h>

#define LED1 P1_0


int count = 0;

void init_led()
{
   P1SEL &= ~(1 << 0);//set p1_0 as generic io
   P1DIR |= (1 << 0); //set P1_0 as output
   LED1 = 0x0; //set led1 off   
}

void init_clock32MHZ()
{
  CLKCONCMD &= ~(1 << 6);//set source system clcok 32MHZ
  while(CLKCONSTA & 0x40);//wait source system clcok stable
  CLKCONCMD &= ~((1 << 6) | (1 << 2 ) | (1 << 1) | (1 << 0));//设置主时钟为32MHZ
  while(CLKCONSTA & 0x1);//wait main clcok stable
  CLKCONCMD |= (6 << 3);//set TICKSPD = 500KHZ
  //TICKSPD default = 16MHZ
}

void init_timer3()
{
  //使用模模式,倒计数,正倒计数时,必须设置这个寄存器为比较模式
  T3CCTL0 |= (1 << 2);
  
  T3CTL |= (7 <&l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值