历史上的今天
返回首页

历史上的今天

今天是:2025年03月11日(星期二)

正在发生

2021年03月11日 | MSP430单片机定时器面面观

2021-03-11 来源:eefocus

对于MSP430 X449而言:


默认情况如下:


ACLK= LFXT1 = 32768Hz, 低频时钟源


MCLK=SMCLK= default DCO = 32 x ACLK = 1048576Hz 高频时钟源


ACLK ,MCLK ,SMCLK的频率可以根据 FLL+相应的寄存器来调节


时钟源有:


LFXT1CLK: 32768 HZ 即:32K


XT2CLK: 4M


DCOCLK: 选择AP18PF时


FN_2 1.04875M


FN_3 1.08860M


FN_4 1.710


FN_8 3.4M


以下引脚的复用功能如下:


P1.5 : ACLK 82


P1.4: SMCKL 83


P1.1: MCLK 86


MSP430单片机定时器学习笔记


—————————————————————————————————————————


msp430 定时器学习笔记


_BIS_SR(LPM3_bits + GIE) //进入LPM3低功耗模式和开总中断允许


中断


#pragma vector=TIMERA0_VECTOR


__interrupt void Timer_A(void)


{


}


TACTL timerA控制寄存器


TAR timerA计数器


CCTL0 捕获/比较控制寄存器0


CCRO 捕获/比寄存器0(具有最高中断优先级别,单独使用一个中断向量)


CCTL1 捕获/比较寄存器1


CCR1 捕获/比较寄存器1


CCTL2 捕获/比较寄存器2


CCR2 捕获/比较寄存器2


TAIV 中断向量寄存器


其中,定时器,CCR2,CCR1三者共用一个中断向量


——————————————————————————————————————————


定时器A是一个16位的定时/计数器。它有3个捕获/比较寄存器;能支持多个时序控制、多个捕获/比较功能和多个PWM输出;有广泛的中断功能,中断可由计数器溢出产生,也可以由捕获/比较寄存器产生。


一、TimerA的4种工作模式


1. 停止模式


用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。


2. 增计数模式


捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器。因为CCR0为16位寄存器,所以该模式适用于定时器周期小于65536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)时,定时器复位并从0开始重新计数。


3. 连续计数模式


在需要65536个时钟周期的定时应用场合常用连续计数模式。定时器从当前值计数到0FFFH后,又从0开始重新计数。


连续计数模式的典型应用:


产生多个独立的时序信号。利用捕获比较寄存器捕获各种其它外部事件发生的定时器数据。


产生多个定时信号。


4. 增/减计数模式


需要生成对称波形的情况经常可以使用增/减计数模式。该模式下,定时器先增计数到CCR0的值,然后反向减计数到0。计数周期仍由CCR0定义,它是CCR0计数器值的2倍。


二、TimerA寄存器说明


寄存器


寄存器说明


类型


地址


初始状态


TACTL


Timer_A控制寄存器


读写


160H


POR复位


TAR


Timer_A计数器


读写


170H


POR复位


CCTL0


捕获/比较控制寄存器0


读写


162H


POR复位


CCR0 捕获/比较寄存器0


读写


172H


POR复位


CCTL1


捕获/比较控制寄存器1


读写


164H


POR复位


CCR1 捕获/比较寄存器1


读写


174H


POR复位


CCTL2


捕获/比较控制寄存器2


读写


166H


POR复位


CCR2 捕获/比较寄存器2


读写


176H


POR复位


TAIV 中断向量寄存器


读写


12EH


POR复位


1. TACTL 控制寄存器,各位定义:


15-10


9 8 7


6


5


4


3


2


1


0


未用


SSEL1 SSEL0 ID1 ID0 MC1 MC0 未用 CLR TAIE TAIFG


SSEL1、SSEL0选择进入定时器分频器的时钟源


SSEL1


SSEL0


输入时钟源


说明


0 0 TACLK 用特定的外部引脚信号 0 1 ACLK 辅助时钟 1 0 MCLK 系统时钟 1 1 INCLK 外部输入时钟


ID1、ID0输入分频系数


ID1


ID0


分频系数


0 0 不分频 0 1 1/2分频 1 0 1/4分频 1 1 1/8分频


MC1、MC0计数模式控制位


MC1


MC0


模式


0 0 停止模式 0 1 增计数模式 1 0 减计数模式 1 1 增/减计数模式


CLR——定时器清除。当该位为1时,定时器复位。


TAIE——定时器中断允许位。0:禁止定时器溢出中断;1:允许定时器溢出中断。


TAIFG——定时器溢出标志位。


增计数模式:当定时器由CCR0计数到0时,TAIFG置位;


连续计数模式:当定时器由0FFFFH计数到0时,TAIFG置位;


增/减计数模式:当定时器由CCR0减计数到0时,TAIFG置位。


2. TAR 16位计数器。


3. CCTLx 捕捉/比较控制寄存器,各位定义:


15 14


13 12 11 10 9


8


7 6 5


4


3


2


1


0


CAPTMOD1~0


CCIS1~0 SCS SCCIx


CAP


OUTMODx


CCIEx


CCIx


OUT


COV


CCIFGx


CAPTMOD1~0——选择捕获模式


00:禁止捕获模式


01:上升沿捕获


10:下降沿捕获


11:上升沿与下降沿都捕获


CCIS1~0——捕获事件输入源


00:选择CCIxA


01:选择CCIxB


10:选择GND


11:选择Vcc


SCS——选择捕获信号与定时器时钟同步、异步关系


0:异步捕获


1:同步捕获(实际中经常使用同步模式,捕获总是有效的)


SCCIx——比较相等信号EQUx将选中的捕获/比较输入信号CCIx(CCIxA,CCIxB,Vcc和GND)进行锁存,然后可由SCCIx读出。


CAP——选择捕获模式还是比较模式。


0:比较模式


1:捕获模式


OUTMODx——选择输出模式


000:输出


001:置位


010:PWM翻转/复位


011:PWM置位/复位


100:翻转


101:复位


110:PWM翻转/置位


111:PWM复位/置位


CCIEx——捕获/比较模块中断允许位


0:禁止中断


1:允许中断


CCIx——捕获/比较模块的输入信号


捕获模式:由CCIS0和CCIS1选择的输入信号可通过该位读出


比较模式:CCIx复位


OUT——输出信号(如果OUTMODx选择输出模式0,则该位对应于输入状态)


0:输出低电平


1:输出高电平


COV——捕获溢出标志


0:没有捕获溢出


1:发生捕获溢出


当CAP=0时,选择比较模式。捕获信号发生复位。没有使COV置位的捕获事件。


当CAP=1时,选择捕获模式。如果捕获寄存器的值被读出前再次发生捕获事件,则COV置位。程序检测COV来判断原值读出前是否又发生捕获事件。读捕获寄存器时不会使溢出标志复位,须用软件复位。


CCIFGx——捕获比较中断标志


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


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


4. CCRx 捕捉/比较寄存器:可读可写


在捕获模式,当满足捕获条件,硬件自动将计数器TAR数据写入该寄存器。


如果测量某窄脉冲(高电平)的脉冲长度,可定义上升沿和下降沿都捕获。在上升沿时,捕获一个定时器数据,这个数据在捕获寄存器中读出;再等待下降沿到来,在下降沿时又捕获一个定时器数据;那么两次捕获的定时器数据差就是窄脉冲的高电平宽度。


其中CCR0经常用作周期寄存器,其它CCRx相同。


5. TAIV 中断向量寄存器:


Timer_A模块使用两个中断向量。一个单独分配给捕获/比较寄存器CCR0;另一个作为共用中断向量用于定时器和其它的捕获/比较寄存器。


捕获/比较寄存器CCR0中断向量具有最高的优先级。因为CCR0能用于定义增计数和增/减计数模式的周期。因此,它需要最快速的服务。CCIFG0在被中断服务时能自动复位。


CCR1~CCRx和定时器共用另一个中断向量,属于多源中断,对应的中断标志CCIFG1~CCIFGx和TAIFG1在读中断向量字TAIV后,自动复位。如果不访问TAIV寄存器,则不能自动复位,须用软件清除。


15~5


4~ 1 0


0~0


中断向量 0


中断优先级


中断源


缩写


TAIV的内容


最高 捕获/比较器1 CCIFG1 2 捕获/比较器2 CCIFG2 4 ...... 捕获/比较器x CCIFGx 最低 定时器溢出 TAIFG1 10 没有中断将挂起


————————————————————————————————————————————————


//******************************************************************************


//


// Lierda, Inc


// Built with IAR Embedded Workbench Version: 3.41a


// ID: MSP430-TEST44X


// 程序功能:实现延时 1S,驱动LED4闪烁


// 通过本实验了解MSP430内部的时钟来源和不同频率的设置。


// 硬件连接:在必须连接P1.1、P1.5短接器,


//******************************************************************************


#include "msp430x44x.h"


void main(void)


{


WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器


TACTL = TASSEL0 +TACLR; //选择ACLK为分频时钟源,清TAR


TACTL |= MC0; //开启Timer_A,连续计数模式


CCTL0 = CCIE; //开启Timer_A的中断


CCR0 = 32000; //延时32000/32k=1s


P5DIR |= BIT1;


P5OUT |= BIT1;


while(1)


{


_BIS_SR(LPM3_bits+GIE); //进入低功耗模式


}


}


#pragma vector=TIMERA0_VECTOR


__interrupt void Time_A()


{


P5OUT ^=BIT1;


}


推荐阅读

史海拾趣

AD Semiconductor公司的发展小趣事

AD Semiconductor是一家专注于模拟和数字混合信号集成电路的设计、生产和销售的公司。以下是该公司发展的五个相关故事:

  1. 公司成立与初期发展: AD Semiconductor成立于1990年,总部位于美国马萨诸塞州。公司的创始人具有丰富的集成电路设计和制造经验,致力于开发高性能、高可靠性的模拟和数字混合信号芯片。初期,公司主要专注于功率管理、数据转换和信号处理等领域。

  2. 技术创新与产品推出: AD Semiconductor在技术创新方面取得了多项突破,不断推出具有领先性能的芯片产品。公司的产品涵盖了模拟转换器、运算放大器、数据采集系统、功率管理器等多个系列,广泛应用于通信、工业控制、汽车电子等领域。

  3. 市场拓展与国际化发展: 随着产品线的不断完善和市场认可度的提升,AD Semiconductor逐步拓展了国内外市场。公司在美国、中国、欧洲等地设立了销售和技术支持中心,与全球各地的客户建立了合作关系。通过与国际合作伙伴的合作,AD Semiconductor的产品远销至全球各地,赢得了广泛的市场认可。

  4. 并购与战略合作: 为了加强自身的技术实力和市场地位,AD Semiconductor进行了一系列的并购和战略合作。其中最重要的是2015年,AD Semiconductor收购了一家专注于RF和微波集成电路设计的公司,进一步拓展了在无线通信领域的业务布局。

  5. 持续创新与未来展望: AD Semiconductor致力于持续创新,不断推出符合市场需求的新产品和解决方案。公司将继续加强技术研发投入,提升产品性能和稳定性,以满足客户在不断变化的市场需求。未来,AD Semiconductor将继续致力于成为模拟和数字混合信号领域的领先企业,并为全球客户提供更加优质的产品和服务。

Ferraz Shawmut(Mersen)公司的发展小趣事

Ferraz Shawmut一直致力于技术创新和产品研发。通过不断的技术创新,公司推出了多款具有竞争力的电气保护产品,如熔断器、保险丝等。同时,公司也积极拓展全球市场,目前在全球拥有60个下属企业,6200名雇员,产品远销世界各地。

创世(CS)公司的发展小趣事

作为一家有社会责任感的企业,创世公司始终关注环境保护和可持续发展。公司积极推广绿色生产技术和资源循环利用方案,减少生产过程中的能源消耗和废弃物排放。同时,创世公司还积极参与社会公益活动,为社会和环境贡献自己的力量。这种对社会责任的关注和担当使得创世公司在电子行业中树立了良好的形象。

德索五金(dosinconn)公司的发展小趣事
Frequency Electronics Inc公司的发展小趣事

为了进一步扩大市场份额,高频电子积极实施全球化战略。公司在全球范围内建立了销售网络和服务体系,与众多国际知名企业建立了长期合作关系。同时,高频电子还针对不同地区的市场需求,定制化开发符合当地标准的产品和服务。这些努力使得高频电子的产品和服务能够覆盖全球多个国家和地区,为公司带来了稳定的收入来源和持续增长的动力。

Gustav Klauke GmbH公司的发展小趣事

高频电子深知技术创新是企业持续发展的核心动力。因此,公司一直保持着对研发的持续投入,不断推出新产品、新技术和新服务。同时,高频电子还积极与高校、科研机构等合作,共同开展前沿技术的研发和应用。这些努力使得高频电子在技术创新方面始终保持着领先地位,为公司的长期发展奠定了坚实的基础。

综上所述,高频电子通过战略转型、技术创新、全球化布局、多元化业务布局以及持续投入研发等举措,实现了从一家小型国防合同制造商到全球领先的高科技供应商的华丽蜕变。这些故事不仅展现了高频电子的发展历程和成就,也为我们揭示了企业成功背后的关键因素。

问答坊 | AI 解惑

手机发射功率

手机发射功率 手机发射功率的两个方面 手机发射功率在PHS、GSM、cdma2000 1x、wcdma等协议中,被设计得越来越复杂,它的重要性已不言而喻,哪手机发射功率是大些好哪,还是小些好哪?事实上单纯的说大些好或者小些好,都实在不是一个明智的 ...…

查看全部问答>

弱问,插入u盘后再开机无法识别u盘的问题

开机后插入u盘能够识别,但是先插u盘再开机在“我的设备”里看不见u盘。我用的是arm 系统是wince5.0 应该怎么解决? 刚查了下但没什么头绪,麻烦大家赐教,详细说下,谢谢!!…

查看全部问答>

怎样识别串口

我在做一个PDA识别蓝牙串口,EVC编译 和VC差不多的 我用了个CSerialPortEx类 用InitPort(this, i )可以识别出蓝牙串口(PDA是串口8)但是同时也识别出了几个不可用串口, 这我就不明白了 怎么分辨出那个就是蓝牙串口呢?谢谢啦 CSerialPortEx ...…

查看全部问答>

想买块 ARM9 开发板,请给点建议

如题,要求稳定,带屏,最好有技术支持…… 谢谢各位了,请踊跃建言!…

查看全部问答>

CC2520+MSP430和CC2530

设计无线传感器网络,CC2520+MSP430和CC2530这两种方案的对比?各个的优缺点?求坛里的大神指点指点…

查看全部问答>

linux-arm开发环境简单配置

关于linux-arm开发环境简单配置是ARM学习的第一步,很多初学者会在这问题上纠结很久都不能配置好开发环境。推荐大家看一下韦东山视频,讲得很详细,代码基本上都会给你解释(很多视频都不会给你解释),适合初学者。 fedora8开发环境简单配置 lin ...…

查看全部问答>

新手的Altera的PLL及工程问题

各位大侠,小弟刚入手FPGA,请大家多多指教。我想使能Altera cyclone II的PLL,但根据官方的文档,只找到用原理图方式实现,做了测试,也没问题,现在的问题有两个:1- Altera cyclone II能否用VHDL方式来实现PLL功能?2- 如何在Quartus里, ...…

查看全部问答>

摸索MSP430FR5739+TMP275

最近用MSP430FR5739来读TMP275直接用MSP430FR573x, MSP430FR572x C Code Examples (IAR and CCS) (Rev. B)\\slac491b\\MSP430FR57xx Code Examples\\C下面的MSP430FR57xx_uscib0_i2c_10.c,可以直接读出温度值不过,是没有对TMP275配置的等完成了再 ...…

查看全部问答>

RT-Thread 1.1.0 RC 版本发布

原计划在2012年9月30日发布的 RT-Thread 1.1.0 Beta2 版本变更为 RT-Thread 1.1.0 RC 现在发布了。 RC 版本的发布意味着离 RT-Thread 1.1.0 正式版的发布已经不远了,在RC版本之后,将不再有新功能加入。欢迎大家测试,让我们一起迎接 RT-Thread 1 ...…

查看全部问答>