CC2530定时器1的工作模式

  CC2530的定时器1(T1)是16位多功能定时器,支持三种工作模式:自由运行模式模模式正计数/倒计数模式。以下从模式原理、配置方式、应用场景及寄存器设置等角度进行详细解析:

  一、工作模式详解

  1. 自由运行模式(Free Running Mode)

  工作原理

  计数器从0x0000开始递增,每个时钟边沿加1.达到最大值0xFFFF时溢出并自动复位到0x0000重新计数。

  特点

  溢出周期固定为0xFFFF,不可自定义。

  溢出时触发中断标志IRCON.T1IF和T1STAT.OVFIF。

  应用场景

  适用于需要连续周期性中断的场合,如简单定时任务或高频信号生成。

  2. 模模式(Modulo Mode)

  工作原理

  计数器从0x0000递增至用户设定的最大值(存储在T1CC0寄存器),达到后复位到0x0000重新计数。

  特点

  周期可通过T1CC0灵活配置,计算公式为:

  周期=定时时长/时钟周期×分频系数

  适用于需要精确控制溢出时间的场景,如周期可调的PWM输出。

  应用场景

  精准定时(如秒闪LED)、频率可调的PWM信号生成。

  3. 正计数/倒计数模式(Up/Down Mode)

  工作原理

  计数器从0x0000正向计数到T1CC0设定值,再反向递减至0x0000.形成一个对称周期。

  特点

  周期是模模式的两倍(从0x0000到T1CC0再返回)。

  适用于需要对称脉冲输出的应用,如中心对齐的PWM(用于电机控制)。

  应用场景

  电机驱动、对称PWM生成(如呼吸灯、调光系统)。

  二、配置寄存器设置

  定时器1的模式选择通过T1CTL寄存器的MODE[1:0]位实现,具体配置如下:

模式T1CTL.MODE[1:0]关键寄存器说明
自由运行模式01T1CTLT1STAT无需设置T1CC0,周期固定
模模式10T1CC0H:T1CC0L需写入最大计数值到T1CC0
正计数/倒计数模式11T1CC0H:T1CC0L需设置T1CC0,且中断触发在倒计数结束时

  此外,时钟分频通过T1CTL.DIV[1:0]设置(分频系数可选1、8、32、128),影响计数速度。

  三、典型应用实例

  PWM输出

  在正计数/倒计数模式下,结合通道比较功能,可生成中心对齐的PWM信号,用于电机调速或LED调光。

  精确定时

  模模式常用于实现秒级定时(如LED闪烁),通过分频和T1CC0的配合达成。

  输入捕获

  自由运行模式配合输入捕获通道,可测量外部信号的频率或脉宽。

  四、中断与DMA触发

  中断机制

  每种模式均可在溢出时触发中断,需使能TIMIF.OVFIM(溢出中断屏蔽位)和IEN1.T1EN(定时器1中断使能)。

  DMA支持

  定时器1可触发DMA传输,用于高效数据搬运(如ADC采样结果存储)。

  五、模式对比与选型建议

模式周期可控性适用场景复杂度
自由运行模式简单定时、高频中断
模模式精确周期控制、可变PWM
正计数/倒计数模式对称脉冲输出、电机控制

  建议:优先选择模模式进行通用定时任务,需对称输出时切换至正计数/倒计数模式。

  通过上述分析,可全面掌握CC2530定时器1的三种工作模式及其应用方法,为实际开发提供技术依据。

滚动至顶部