上一节讲了16位定时器1,本节讲8位定时器3和定时器4!

1、综述

  Timer 3 and Timer 4 are two 8-bit timers(8位定时器). Each timer has two independent capture/compare channels(独立的捕获/比较通道),each using one I/O pin per channel.

  Features:

· Two capture/compare channels
· Set, clear or toggle output compare
· Clock prescaler for divide by 1, 2, 4, 8, 16, 32, 64, 128(分频)
· Interrupt request generated on each capture/compare and terminal-count event
· DMA trigger function

2、8-Bit Timer Counter

  #如何设置周期# 定时器3和定时器4所有功能都是基于8位定时计数器的。计数器在每个时钟边沿递增或递减。活动时钟边沿的周期首先可以通过寄存器CLKCONCMD.TICKSPD[2:0]来设定,更细的分频可以通过设置TxCTL.DIV[2:0]寄存器 (where x refers to the timer number, 3 or 4)。The counter operates as either a free-running counter, a down counter, a modulo counter or an up/down counter(自由运行计数器,倒计数器,模计数器,或正/倒计数器)。

  #如何读取计数器的值# It is possible to read the 8-bit counter value through the SFR register TxCNT, where x refers to the timer number, 3 or 4.

  #停止和开始控制# 清除和暂停定时器是通过TxCTL控制寄存器来实现的。 The counter is started when a 1 is written to TxCTL.START. If a 0 is written to TxCTL.START, 保留在当前值。

3、Timer 3/Timer 4 Mode Control

  In general, the control register TxCTL is used to control the timer operation.

3.1 Free-Running Mode(自由计数模式)

  在此模式,定时器从0x00开始计时,每次上升沿递增。当值达到0xFF时,定时器被重置为0x00并继续计数。当最终达到0xFF(例如:发生一次溢出),中断标志位TIMIF.TxOVFIF被置1。如果设置了相应的中断屏蔽位TxCTL.OVFIM为1,就会产生一个中断请求。自由运行模式可以用于产生独立的时间间隔和输出信号频率。

3.2 Down Mode(倒计数模式)

  在倒计数模式,定时器启动之后,计数器载入TxCC0 的内容。然后计数器倒计时,直到0x00。当达到0x00时,设置标志TIMIF.TxOVFIF。如果设置了相应的中断屏蔽位TxCTL.OVFIM,就产生一个中断请求。定时器倒计数模式一般用于需要事件超时间隔的应用程序。

3.3 Modulo Mode(模模式)

  当定时器运行在模模式,8 位计数器在0x00 启动,每个活动时钟边沿递增。当计数器达到寄存器TxCC0所含的最终计数值时,计数器复位到0x00,并继续递增。当发生这个事件时,设置标志IMIF.TxOVFIF 。如果设置了相应的中断屏蔽位TxCTL.OVFIM,就产生一个中断请求。模模式可以用于周期不是0xFF 的应用程序。

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

  在正/倒计数定时器模式下,计数器反复从0x00 开始正计数,直到达到TxCC0 所含的值,然后计数器倒计数,直到达到0x00。这个定时器模式用于需要对称输出脉冲,且周期不是0xFF 的应用程序。因此它允许中心对齐的PWM 输出应用程序的实现。

  注意:通过写入TxCTL.CLR 清除计数器也会复位计数方向,即从0x00 模式正计数!!!

  这四种模式其实区别不大,自由模式是从0x00到0xFF,然后再从0x00到0xFF;倒计数模式是从设定值(TxCC0)开始倒着计数,直到0x00;模模式则是从0x00->TxCC0,然后再从0x00继续重复之前的循环;正倒计数模式和模模式不同之处是当达到TxCC0之后,而是从TxCC0倒着计数到0x00。

4、通道模式控制

  对于通道0 和1,每个通道的模式是由控制和状态寄存器TxCCTLn 设置的,其中n 是通道号码0 或1。设置包括捕获和比较模式。

5、输入捕获模式

  当一个通道配置为一个输入捕获通道,通道相关的I/O 引脚配置为一个输入。定时器启动之后,输入引脚上的一个上升沿、下降沿或任何边沿都会触发一个捕获,即捕获8 位计数器内容到相关的捕获寄存器中。因此,定时器能够捕获一个外部事件发生的时间。

  注意:在定时器使用一个I/O 引脚之前,所需的I/O 引脚必须配置为一个定时器3/定时器4 外设引脚。

  通道输入引脚与内部系统时钟是同步的。因此,输入引脚上的脉冲的最小持续时间必须大于系统时钟周期。通道n 的8 位捕获寄存器的内容从寄存器T3CCn/T4CCn 中读出。当发生一个捕获,对应实际通道的中断标志就被设置。这是TIMIF.TxCHnIF。如果相应的中断屏蔽位TxCCTLn.IM 被设置,就产生一个中断请求。

  插一句:这个输入捕获在设计汽车倒车雷达——多路超声波测距时很有用,一旦外部超声波接收部分的滤波电路产生一个电平变化都会被捕获到时间点,用来计算距离。

6、输出比较模式

  在输出比较模式下,与该通道相关的I/O 引脚必须设置为输出。定时器启动之后,the content of the counter is compared with the contents of channel compare register TxCC0n。如果比较寄存器等于计数器的内容,根据比较输出模式TxCCTL.CMP1:0 的设置,输出引脚被设置1、复位0或切换。注意当运行在一个给定的比较输出模式下,输出引脚上的所有边沿都是无故障运行的。

  For simple PWM use, output compare modes 4 and 5 are preferred.

  Writing to compare register TxCC0 or TxCC1 does not take effect on the output compare value until the counter value is 0x00.

  当一个比较发生时, 实际通道的相应的中断标志位就会被设置。该中断标志位即:TIMIF.TxCHnIF。如果相应的中断屏蔽位TxCCTLn.IM被设置了,那么就会产生中断请求。(CC2530的中断请求产生目前来看似乎都需要设置相应的中断屏蔽位!)

  A compare output pin is initialized to the value listed in Table 6-1 when:

[ZigBee] 6、ZigBee基础实验——定时器3和定时器4(8 位定时器)的更多相关文章

  1. [ZigBee] 5、ZigBee基础实验——图文与代码详解定时器1(16位定时器)(长文)

    1.定时器1概述 定时器1 是一个支持典型的定时/计数功能的独立16 位定时器,支持输入捕获,输出比较和PWM等功能.定时器有五个独立的捕获/比较通道.每个通道定时器要使用一个I/O 引脚.定时器用于 ...

  2. CC2530学习路线-基础实验-定时器控制LED灯亮灭(3)

    目录 1. 前期预备知识 1.1 定时器中断触发 1.2 相关寄存器 1.3 寄存器相关问题 1.4 T1.T3定时器初始化流程 2 程序及代码 THE END 1. 前期预备知识 1.1 定时器中断 ...

  3. [nRF51822] 9、基础实验代码解析大全 · 实验12 - ADC

    一.本实验ADC 配置 分辨率:10 位. 输入通道:5,即使用输入通道AIN5 检测电位器的电压. ADC 基准电压:1.2V. 二.NRF51822 ADC 管脚分布 NRF51822 的ADC ...

  4. [nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI

    前一篇分析了前十个基础实验的代码,从这里开始分析后十个~ 一.PPI原理: PPI(Programmable Peripheral Interconnect),中文翻译为可编程外设互连. 在nRF51 ...

  5. 实验三 CC2530平台上CC2530平台上定时器组件的

    实验三 CC2530平台上CC2530平台上定时器组件的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步掌握CC2530定时器的PWM功能,及其TinyOS ...

  6. CC2530学习路线-基础实验-GPIO 按键控制LED灯亮灭(2)

    目录 1.前期预备知识 1.1 新大陆Zigbee模块按键电路图 1.2 CC2530相关寄存器 1.3 CC2530中断走向图 1.4 使用C语言为51单片机编写中断程序 1.5 *函数指针 2. ...

  7. [nRF51822] 12、基础实验代码解析大全 · 实验19 - PWM

    一.PWM概述: PWM(Pulse Width Modulation):脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形. PWM 的几个基本概念: 1) 占空比:占空比是指 ...

  8. [nRF51822] 11、基础实验代码解析大全 · 实验16 - 内部FLASH读写

     一.实验内容: 通过串口发送单个字符到NRF51822,NRF51822 接收到字符后将其写入到FLASH 的最后一页,之后将其读出并通过串口打印出数据. 二.nRF51822芯片内部flash知识 ...

  9. [nRF51822] 10、基础实验代码解析大全 · 实验15 - RTC

    一.实验内容: 配置NRF51822 的RTC0 的TICK 频率为8Hz,COMPARE0 匹配事件触发周期为3 秒,并使能了TICK 和COMPARE0 中断. TICK 中断中驱动指示灯D1 翻 ...

随机推荐

  1. 华硕U303L通过U盘装系统

    开机,按esc,进入bios,选择security,将secure boot control设置为disable.   在boot下,将launch csm 改为enable,按F10保存退出,重启. ...

  2. 1 Java线程的内存可见性

    Java内存的可见性 可见性: 一个线程对共享变量的修改,能够及时被其它线程看到 共享变量: 如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量 Java内存模型(JM ...

  3. Dancing Links & Algorithm X

    1 参考链接 http://www.cnblogs.com/steady/archive/2011/03/15/1984791.html#undefined http://en.wikipedia.o ...

  4. 国内首个微信小程序开发者社区www.mntuku.cn

    微信小程序开发者社区-微信小程序开发教程-微信小程序最新资讯 - www.mntuku.cn .本站作为专业的微信小程序开发者社区为大家提供:微信小程序开发者交流平台,微信小程序开发教程,微信小程序定 ...

  5. [转]pycharm的一些快捷键

    忙了好一阵终于忙完了,最近在重构代码,有许多地方要注释什么的,在多行注释时总是很麻烦,就想着pycharm有没有快捷键,就像visual studio一样.于是上Google搜一下PyCharm De ...

  6. 天气预报API(二):全球城市、景点代码列表(“旧编码”)

    说明 2016-12-10 补充 (后来)偶然发现中国天气网已经有城市ID列表的网页...还发现城市编码有两种,暂且称中国天气网这些编码为旧标准"旧编码"的特征是 9个字符长度; ...

  7. node开发

    1. 国内使用npm安装某些插件的时候,偶尔会有网络问题,可以使用cnpm:(后续所有使用 npm 无法正常安装的,都改成 cnpm 试试) a. 首先使用 npm 安装 cnpm:npm insta ...

  8. 【转】Linux 文件夹文件创建与删除

    [转自:Linux文件夹文件创建.删除 - 风生水起 - 博客园] 1. 删除文件夹 rm -rf  fileNamede> -删除文件夹实例:rm -rf /var/log/httpd/acc ...

  9. P 1080 Human Gene Functions

    大概作了一周,终于A了 类似于求最长公共子序列,稍有变形 当前序列 ch1 中字符为 a,序列 ch2 中字符为 b 则有 3 种配对方式: 1. a 与 b 2. a 与 - 3. - 与 b 动态 ...

  10. overview

    [1] Don’t panic! All will become clear in time; [2] You don’t have to know every detail of C++ to wr ...