本文整理学习一下定时器A的相关基础知识,本文比较偏向理解与理论性,
主要是深入在官方手册层面进行对定时器A的深入研究,定时器 A的相关实践基本上在之前的文章中都有提及:
1.定时器A定时中断:
MSP432学习笔记7:定时器A_定时中断_msp432时钟_NULL指向我的博客-CSDN博客
2.定时器A_PWM驱动舵机:
MSP432学习笔记8:定时器A_PWM驱动舵机_NULL指向我的博客-CSDN博客
3.定时器A-----捕获:
MSP432学习笔记9:定时器A-----捕获_NULL指向我的博客-CSDN博客
4.定时器A的结构\基地址\函数汇总理解:
MSP432学习笔记11:定时器A的结构\基地址\函数汇总理解_NULL指向我的博客-CSDN博客
5.MSP432时钟源与定时器A时钟源配置:
MSP432学习笔记12:MSP432时钟源与定时器A时钟源配置_NULL指向我的博客-CSDN博客
定时器A官方手册:
我们看到官方手册783页,有关定时器A的介绍从此开始:
19.1定时器_A介绍:
Timer_A是一个16位定时器/计数器,最多具有7个捕获/比较寄存器。Timer_A可以支持。
多个捕获/比较、PWM输出和间隔计时。Timer_A也有大量中断能力。可以在溢出、每个捕获/比较寄存器、条件下 从计数器生成中断。
Timer_A功能包括:
·具有四种工作模式的异步16位定时器/计数器。
·可选、可配置的时钟源。
·最多七个可配置的捕获/比较寄存器。
·具有脉宽调制(PWM)功能的可配置输出。
·异步输入和输出锁存。
定时器_A的框图如图19-1所示。
注:单词count的用法。
本章通篇使用计数。这意味着计数器必须处于等待着行动的发生。如果将特定值直接写入计数器,则会引发。关联的操作不会发生。
注:命名法。
在给定设备上可能存在Timer_A的多个实例化。使用前缀Tax,其中x大于等于零,表示Timer_A实例化。对于具有以下功能的设备。一个实例化,x=0。后缀n,其中n=0到6,表示特定的。捕获/比较与Timer_A实例化相关的寄存器。
19.2定时器_A操作:
Timer_A模块配置有用户软件。以下各节中讨论了定时器_A的设置和操作。
19.2.1 16位定时器计数器。
16位定时器/计数器寄存器TAxR通过以下方式递增或递减(取决于操作模式)。
时钟信号的每个上升沿。TAxR可以用软件读取或写入。此外,定时器可以在溢出时生成中断。
TAxR可通过设置TACLR位来清除。设置TACLR还会清除时钟分频器和计数向上/向下模式的方向。
注:修改TIMER_A寄存器
建议在修改计时器的操作之前停止计时器(除了中断使能、中断标志和TACLR),以避免错误的操作条件。
当定时器时钟与CPU时钟不同步时,应从TAxR进行任何读取。当计时器未运行或结果可能不可预测时。或者,计时器可以在运行时多次读取,并在软件中获得多数票。确定正确的读数。对TAxR的任何写入都会立即生效
19.2.1.1时钟源选择和分频。
定时器时钟可以来自ACLK、SMCLK或外部的TAxCLK或INCLK。
钟表。用TASSEL bits选择信号源。所选时钟源可以被直接传递给定时器或。使用ID位除以2、4或8。所选择的时钟源可以使用TAIDEX位进一步除以2、3、4、5、6、7或8。设置TACLR时,定时器时钟分频逻辑被重置。
注:TIMER_A分频器。
对ID或TAIDEX位进行编程后,设置TACLR位。这将清除TAxR的内容。并将时钟分频器逻辑重置为定义的状态。时钟分割器实现为倒计时器。因此,当TACLR位被清除时,定时器时钟立即在TIMER_A时钟源的第一个上升沿开始计时。TASSEL bits 并继续按ID和TAIDEX位设置的分频器设置计时。
注意:当计时器由外部时钟计时时,由于以下原因,前两个时钟脉冲会丢失。内部时钟同步方案,计时器仅从第三个时钟开始计数。
19.2.2启动定时器。
计时器可以通过以下方式启动或重新启动:
·当MC>{0}且时钟源激活时,计时器计数。
·当定时器模式为UP或UP/DOWN时,可通过将0写入TAxCCR0来停止定时器。这个。
然后,可通过将非零值写入TAxCCR0来重新启动定时器。在这种情况下,计时器启动。
从零开始向上递增。
19.2.3定时器模式控制。
定时器有四种工作模式:停止、上升、连续和上升/下降(参见表19-1)。
这个。使用MC位选择操作模式。
MC | MODE | Description |
00 | 停止 | 计时器停止 |
01 | 递增 | 计时器从零到TAxCCR0的值重复计数 |
10 | 连续 | 计时器重复从0到0FFFFh计数 |
11 | 向上/向下 | 计时器重复从零开始计数至TAxCCR0的值,然后向下计数至零 |
19.2.4捕获/比较模块。
Timer_A中最多存在七个相同的捕获/比较块TAxCCRn(其中n=0到7)。可以用来捕获定时器数据或产生时间间隔。
19.2.4.1捕获模式。
当CAP=1时选择捕获模式。捕获模式用于记录时间事件。它可以用来用于速度计算或时间测量。捕获输入CCIxA和CCIxB连接到外部引脚或内部信号,并通过CCIS位选择。CM位选择捕获边沿。输入信号为上升、下降或同时上升和下降。捕获发生在输入信号的选定边沿上。
如果一个捕获发生:
·定时器值被复制到TAxCCRn寄存器。
·中断标志CCIFG被设置。
可以随时从CCI位读取输入信号电平。设备连接到CCIxA和CCIxB可能具有不同的信号。
有关这些信号的连接,请参阅设备特定的数据表。
捕获信号可能与定时器时钟不同步,并导致竞争条件。设置SCS位使捕获与下一个定时器时钟同步。设置SCS位以同步捕获。建议使用带定时器时钟的信号(见图19-10)
注意:更改捕获输入。
在捕获模式下更改捕获输入可能会导致意外捕获事件。
为避免这种情况,只有在禁用捕获模式时才应更改捕获输入。(Cm={0}或CAP=0)
在每个捕获/比较寄存器中提供溢出逻辑以指示是否执行了第二次捕获在读取第一个捕获的值之前。
当发生这种情况时,位COV被设置,如图19-11所示-。必须使用软件重置CoV。
目前翻译到790页