开发板有两个定时器:定时器A和定时器B。因为定时器B和定时器A差不多,所以就介绍一下定时器A。

定时器A一共有三个,定时器B有一个。其中定时器A分为Timer0_A,Timer1_A,Timer2_A。定时器A支持多重捕获/比较,PWM输出和定时功能,具备中断函数,可以通过定时器溢出或者捕获/比较触发。

这里介绍定时器A的定时器功能和输出PWM功能。其他没涉及的不做介绍。

下面介绍定时器A0相关的寄存器:

1.TA0CTL 寄存器是定时器A的总控制寄存器,可以通过写入宏定义好的单词来配置相关位

2.TA0CCTL0 寄存器是定时器A下第一个捕获/比较器的控制寄存器,也可以通过写入相关单词来配置对应的功能。

3.TA0CCR0 寄存器可以通过写入相关的值来决定多少个时间计时一次。

TA0CTL寄存器对应下的配置单词,通过写入这些宏定义好的单词可以完成对应位的功能配置。

a.TASSELn 位可以选择定时器的时钟源(我一般选择SMCLK,和主时钟一个频率)

b. IDn 位则是可以对主时钟进行分频操作,比如二分频的话,16Mhz的主时钟就变成8Mhz了,最高是八分频。

c. MCn 位可以配置寄存器对应的功能,按顺序分别为停止计数,增计数,持续计数,增减计数。PWM模式和定时器模式用增计数模式就可以了。

d.TACLR 位可以清空计数值,刚开始配置的时候应该写上让定时器变成初始态。

e.TAIE 位可以开启定时器中断功能。

f.TAIFG 位当定时器中断触发的时候会自动置一。

TA0CCTLn寄存器相关功能位介绍

a. 用作定时器功能的时候只需要置位CCIE即可,即打开比较器中断使能。

b. PWM则通过置位OUTMOD_7即可,设置为复位/置位模式。

其他用作比较器/捕获器的功能位先不做介绍。

Timer0_A5,5的意思是有5个捕获/比较器。下面会给出两个配置例程,PWM例程可以通过示波器来观察对应引脚输出的情况。

例程1.定时器功能

对应TA0CCR0的值配置公式:

TA0CCR0=16M(时钟频率) / (   2(默认二分频)*200(5ms对应频率)    )

如果有配置对应分频,需要除去对应的分频值

#include <msp430.h>
void initClockTo16MHz()
{UCSCTL3 |= SELREF_2;                      // Set DCO FLL reference = REFOUCSCTL4 |= SELA_2;                        // Set ACLK = REFO__bis_SR_register(SCG0);                  // Disable the FLL control loopUCSCTL0 = 0x0000;                         // Set lowest possible DCOx, MODxUCSCTL1 = DCORSEL_5;                      // Select DCO range 16MHz operationUCSCTL2 = FLLD_0 + 487;                   // Set DCO Multiplier for 16MHz// (N + 1) * FLLRef = Fdco// (487 + 1) * 32768 = 16MHz// Set FLL Div = fDCOCLK__bic_SR_register(SCG0);                  // Enable the FLL control loop// Worst-case settling time for the DCO when the DCO range bits have been// changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx// UG for optimization.// 32 x 32 x 16 MHz / 32,768 Hz = 500000 = MCLK cycles for DCO to settle__delay_cycles(500000);//// Loop until XT1,XT2 & DCO fault flag is cleareddo{UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); // Clear XT2,XT1,DCO fault flagsSFRIFG1 &= ~OFIFG;                          // Clear fault flags}while (SFRIFG1&OFIFG);                         // Test oscillator fault flag
}void time0Init(void)
{TA0CTL |= MC_1 + TASSEL_2 + TACLR;       //时钟为SMCLK,增计数模式,开始时清零计数器TA0CCTL0 = CCIE;            //比较器中断使能TA0CCR0 = 40000;           //中断(周期)5ms
}void GPIO_init(void){P4DIR |= BIT7;
}void main(void){WDTCTL = WDTPW + WDTHOLD;                 // Stop WDTinitClockTo16MHz();                        //配置系统时钟为16MhzGPIO_init();time0Init();_EINT();while(1){}}/************************定时器中断函数********************************/
#if 1#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer_A(void)
{P4OUT ^= BIT7;
}#endif

例程2.PWM模式

实际输出频率以示波器显示为主。

具体哪些引脚能用于输出PWM波请看自带的引脚功能图。

#include <msp430.h>
void initClockTo16MHz()
{UCSCTL3 |= SELREF_2;                      // Set DCO FLL reference = REFOUCSCTL4 |= SELA_2;                        // Set ACLK = REFO__bis_SR_register(SCG0);                  // Disable the FLL control loopUCSCTL0 = 0x0000;                         // Set lowest possible DCOx, MODxUCSCTL1 = DCORSEL_5;                      // Select DCO range 16MHz operationUCSCTL2 = FLLD_0 + 487;                   // Set DCO Multiplier for 16MHz// (N + 1) * FLLRef = Fdco// (487 + 1) * 32768 = 16MHz// Set FLL Div = fDCOCLK__bic_SR_register(SCG0);                  // Enable the FLL control loop// Worst-case settling time for the DCO when the DCO range bits have been// changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx// UG for optimization.// 32 x 32 x 16 MHz / 32,768 Hz = 500000 = MCLK cycles for DCO to settle__delay_cycles(500000);//// Loop until XT1,XT2 & DCO fault flag is cleareddo{UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); // Clear XT2,XT1,DCO fault flagsSFRIFG1 &= ~OFIFG;                          // Clear fault flags}while (SFRIFG1&OFIFG);                         // Test oscillator fault flag
}void PWMInit(void)
{#if 1P2DIR |= BIT0;P2SEL |= BIT0;TA1CCTL1 |= OUTMOD_7; //复位置位模式TA1CTL |= TASSEL_2 + MC_1 + ID_3; //设置时钟源为SMCLK 16Mhz 8分频TA1CCR0 = 400;            // 400:16Mhz/8/400≈5000hzTA1CCR1 = 200;            //占空比 50% 时取值200#endif}void GPIO_init(void){P4DIR |= BIT7;
}void main(void){WDTCTL = WDTPW + WDTHOLD;                 // Stop WDTinitClockTo16MHz();                        //配置系统时钟为16MhzGPIO_init();PWMInit();_EINT();while(1){P4OUT |= BIT7; //亮灯}}

MSP430F5529-定时器介绍相关推荐

  1. MSP430f5529定时器,定时器中断

    MSP430f5529定时器,定时器中断[以TIMERA为例] 前言 功能概述 定时器启动方式 寄存器介绍 16位定时/计数器TAxR(TimerA Register) 定时器控制寄存器TAxCTL( ...

  2. python 定时器_按键精灵定时器介绍和使用,不会的小伙伴速速看看精辟

    金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚 ...

  3. (19)Zynq FPGA TTC定时器介绍

    1.1 Zynq FPGA TTC定时器介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Zynq FPGA TTC定时器介绍: 5)结束语. 1.1.2 本节引言 ...

  4. (18)Zynq FPGA 看门狗定时器介绍

    1.1 Zynq FPGA 看门狗定时器介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Zynq FPGA 看门狗定时器介绍: 5)结束语. 1.1.2 本节引言 ...

  5. (17)Zynq FPGA 全局定时器介绍

    1.1 Zynq FPGA 全局定时器介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Zynq FPGA 全局定时器介绍: 5)结束语. 1.1.2 本节引言 &q ...

  6. js定时器介绍:倒计时定时器setTimeout、间隔定时器setInterval

    1.定时器介绍 在js里面,有两种定时器:倒计时定时器和间隔定时器  (1)倒计时定时器:倒计时多长时间以后执行函数 语法:setTimeout(要执行的函数,多长时间以后执行) <script ...

  7. 【杰理AC696X】软件定时器介绍

    [杰理AC696X]软件定时器介绍 测试SDK版本:<ac696n_soundbox_sdk_v1.6.0> 文章目录 [杰理AC696X]软件定时器介绍 前言 一.功能概述 1.1 软件 ...

  8. STC单片机启动看门狗定时器介绍和使用

    STC单片机启动看门狗定时器介绍 ✨这里以STC8系列为例.

  9. 2.6.4 Qtimer定时器介绍

    2.6.4 Qtimer定时器介绍 QTimer类提供了定时器功能,在指定的时间超时之后可以发出超时信号,可以单次或者重复定时. QTimer使用方法比较简单:先创建一个QTimer定时器,使用sta ...

  10. (9)MSP430F5529 定时器Timer_A

    MSP430F5529共有两类共4个定时器,分别是Timer_A定时器3个和Timer_B定时器1个,按照每个寄存器配备的捕获/比较器的个数分别命名为Timer0_A(内有5个捕获比较器).Timer ...

最新文章

  1. java中具有继承关系的类及其对象初始化顺序
  2. xampp默认配置拿shell
  3. CPU的基本结构和功能
  4. PS效果教程——冒充手绘效果
  5. html游戏代码_实现了代码自动生成,开发效率妥妥的提升,升职加薪跟上
  6. Mysql从某个字段的每类中取最大最小值
  7. Bug邮件发送附件失败 笔误附件名字多了一个空格
  8. 加速引擎SmartFlow助力浪潮云海超融合2021H1中国市场增速第一
  9. 如何用极路由新插件【搜狐视频】进行远程下载
  10. Mysql数据表的操作
  11. 是时候让 JavaScript 面向对象了!
  12. 能大大提升工作效率和时间效率的9个重要习惯
  13. i2c电路电平转换电路
  14. 网页qq邮箱链接html,使用QQ邮箱打开网页上的电子邮件链接
  15. Mac电脑网速慢的问题之一(硬件:MTU)
  16. Python批量裁剪图形外围空白区域
  17. 想减肥就要管住嘴,怎么管?这个方法可以
  18. Windows 时间同步
  19. 使用 Fastai 构建食物图像分类器
  20. IDEA:运行Tomcat时报错“1099”:Address localhost:1099 is already in use

热门文章

  1. 蓝桥杯练习 分解质因数
  2. 武汉交通职业学院计算机协会,2018年中国计算机学会(CCF)职业教育大会在苏州顺利落幕...
  3. 3D塔防游戏实现 5.2 3D怪物死亡(Feekood语言)
  4. 软件测试面试题【含答案】
  5. Google图片和NASA 网站图片的爬虫
  6. java面试题大汇总,京东校招java面试题
  7. 用Xposed框架抓取微信朋友圈数据
  8. MongoDB不同压缩算法的影响
  9. flink1.12.0学习笔记第2篇-流批一体API
  10. Java基础学习(6)---Java面向对象