当前位置:首页 > 技术分析 > 正文内容

单片机MSP430入门理论⑧--定时器模块-定时器A③

ruisui883个月前 (02-20)技术分析9

单片机MSP430入门理论⑧--定时器模块-定时器A③


上期大概给大家汇总介绍了,定时器模块中定时器A的TACTL控制寄存器,TACTL是用来设置时钟,定时器模式,清除,定时器中断等基础功能的

本期将继续介绍定时器A,这次将整理一些关于定时器A的,其他寄存器的用法以及功能


1.0 下面要说的是TAR寄存器,这个寄存器很简单,就是定时器A用来计数的,也可以读写,只不过要注意当计数时钟不是MCLK时,写入前应停止计数,因为他与CPU时钟不同步,可能引起时间竞争


2.0 相对应的TACCRx寄存器,当比较模式时,TACCRx保存着你设置的用来跟定时器A实际计数值TAR比较的值,而当捕获模式时,TACCRx的就会被TAR的值覆盖


3.0 捕获/比较寄存器TACCTLx

CMx Bit 15-14 捕获模式

00 不捕获

01 上升沿捕获

10 下降沿捕获

11 上升沿下降沿都捕获


CCISx Bit 13-12 捕获信号的输入端选择,具体可以看下芯片IO配置

00 CCIxA

01 CCIxB

10 GND

11 Vcc


SCS bit 11 选择输入捕获信号与定时器选择的时钟源信号是同步还是异步,

在实际操作中,经常使用同步捕获模式,这样的捕获总会是有效的

异步捕获模式允许在请求时立即将捕获中断信号CCIFG置位和捕获定时器值,适用于捕获信号的周期远大于定时器时钟周期的情况,但是,如果定时器时钟和捕获信号发生时间竞争,则捕获寄存器的值可能出错

0 同步捕获

1 异步捕获


SCCI bit 10 同步比较/捕获输入。选择的CCISx(CCLxA,CCLxB,GND,Vcc)输入信号与EQUx信号锁存(一直保持这个信号直到下一次输入改变),并从这个位SCCIx读取状态

注解:EQUx信号是定时器比较模式下的一个输出信号,3个比较/捕获寄存器就有3个独立的比较器信号。

当TAR 的值大于等于TACCR0中的数值时,EQU0=1;

当TAR 的值等于相应的TACCR1或TACCR2的值时,EQU1=1或 EQU2=1。


Unused bit 9 空


CAP bit 8 选择捕获模式还是比较模式

0 比较模式

1 捕获模式

注意:在通过比较捕获寄存器CCTLx的CAP从比较模式切换为捕获模式时,不应同时进行捕获,会出现不可预料的事情,应该先切换模式,再捕获


OUTMODx bit 7-5 选择输出模式,模式2,3,6,7对于TACCR0没用,因为EQUx=EQU0

000 输出

001 置位

010 PWM 翻转/复位

011 PWM 置位/复位

100 翻转

101 复位

110 PWM 翻转/置位

111 PWM 复位/置位


CCIE bit 4 比较/捕获的中断开关,控制这个位可以打开CCIFG标志的响应中断

0 禁用中断

1 打开允许中断响应


CCI bit 3 捕获/比较的输入,选择的什么输入信号可以由这个位读出

捕获模式:由比较/捕获寄存器TACCTLx的CCIS0和CCIS1选择的输入信号通过该位读出

比较模式:CCIx复位


OUT bit 2 输出模式高低电平,不过当OUTMODx输出模式为000时,这里直接控制输出状态

0 为低电平

1 为高电平


COV bit 1 捕获溢出标志

0 未发生捕获溢出

1 发生捕获溢出

注意:如果工作模式CAP=0为比较模式时,捕获信号发生复位,没有使COV置位的捕获事件,而当CAP=1时,如果捕获寄存器的值被读出后又再次发生捕获事件,则COV置位,程序可以检测COV来断定原值读出前是否又发生捕获事件,读捕获寄存器时不会使溢出标志复位,需要软件复位


CCIFGx 捕获比较中断标志

捕获模式:寄存器CCRx捕获了定时器TAR值时置位

比较模式:寄存器TAR值等于寄存器CCRx值时置位


以上内容大多都是在网络上摘抄下来整理的,供大家学习参考的,如涉及到版权请私聊

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2100.html

标签: 清除定时器
分享给朋友:

“单片机MSP430入门理论⑧--定时器模块-定时器A③” 的相关文章

gitlab 分支保护设置

一、功能描述代码管理中管理,我们把稳定的分支设置为保护,可以防止其他人员误操作(例如删除,合并,推送代码等)。二、Gitlab配置步骤1 点击项目Repository标签2.点击Expand标签3.配置如下:默认master是被保护的,而且只有维护人员具有推送和合并权限。设置保护分支,这里的beta...

GitLab 14.6发布,优化Geo高可用,安全更新等

昨天,GitLab官方按照管理发布了有一个月度版本GitLab 14.6的发布,这也是本年度收官版本。14.6中在安全合规性方面,在Geo方面以及MD代码块一键复制等方便做了优化,另外还在UI图标方面发布了一套全新的图标。详细情况请和虫虫一起学习。GitLab 14.6主要改进使用 Geo 实现无缝...

数组、去重、排序、合并、过滤、删除

ES6数字去重 Array.from(new Set([1,2,3,3,4,4])) //[1,2,3,4] [...new Set([1,2,3,3,4,4])] //[1,2,3,4]2、ES6数字排序 [1,2,3,4].sort(); // [1, 2,3,4],默认是升序...

Python中的11 种数组算法

1. 创建数组 创建数组意味着留出一个连续的内存块来存储相同类型的元素。在大多数语言中,您可以在创建数组时指定数组的大小。假设您正在书架上整理一组书籍,并且您需要为正好 10 本书预留空间。功能架上的每个空间都对应于数组中的一个索引。# Example in Python arr = [1, 2,...

Vue进阶(幺叁捌):vue路由传参的几种基本方式

1、动态路由(页面刷新数据不丢失)methods:{ insurance(id) { //直接调用$router.push 实现携带参数的跳转 this.$router.push({ path: `/particulars/${id}`,...

推荐一个Java微服务商业级Sass开源电商小程序(开源,企业级项目)

使用Java微服务开发,SpringBoot2框架、MyBatis-plus持久层框架、Redis作为缓存、MySql8作为数据库。 前端vuejs作为开发语言,使用uniapp编码,同时支持微信小程序、安卓App、苹果App。 支持集群部署,单机部署。 unimall 针对中小商户、企业和个人消...