定时器Timer_A(TA)
基本寄存器
-
TA控制寄存器 TACTL
TASSELx:时钟源选择(TACLK00 ACLK01 SMCLK10 ~TACLK11)
IDx:第一次分频控制(ID0一分频 ID1二分频 ID2四分频 ID3八分频)
MC:工作模式控制(停止00 增01 连续10 增减11)
TACLR:定时器清零,复位TA寄存器、时钟分频和计数方向;会自动复位并置0
TAIE:定时器中断使能(0中断禁止 1中断允许)
TAIFG:中断标志位(0没有中断 1有中断挂起) -
计数值存放寄存器TAR
-
扩展寄存器TAEX0
控制时钟源的二次分频,000-111表示1-8分频 -
捕获/比较寄存器 TACCR0-TACCR4(5个)
比较模式:设定计数终值
捕获模式:将捕获的TAR值存入TACCRx中
捕获比较模块
一、 两个相关寄存器
1、TACCTL0-TACCTL6寄存器
2、TAIV寄存器
1、TACCTL0-6
2、TAIV寄存器
存储中断代号(TACCR0优先级最高,故没有其中断标志)需要手动清零
二、比较模式(CAP=0,也称定时计时模式)
TA启动时默认为比较模式
定时器模式选择
计数模式
四种
向上
连续:即使时间固定值
加减:定时周期为2倍
增模式、连续模式计数到TACCR0的值时,中断标志CCIFG置位,返回0时,TAIFG中断标志位置位
工作模式
两种:捕捉/比较
三种用途:定时、产生PWM波(脉冲宽度调制)、测量频率(两个信号时间间隔)
<一>定时功能
1、查询实现定时功能
/*查询实现定时功能*/
#include <msp430.h>
#include "stdint.h"
/*
* main.c
*/
int main(void)
{
uint8_t cnt = 0; //定义一个变量
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
/*配置DCO频率为1MHz*/<