MSP430单片机定时器面面观

发布者:MindfulBeing最新更新时间:2021-03-11 来源: eefocus关键字:MSP430  单片机  定时器 手机看文章 扫描二维码
随时随地手机看文章

对于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;


}


关键字:MSP430  单片机  定时器 引用地址:MSP430单片机定时器面面观

上一篇:基于MSP430单片机的CPU卡模板程序(二)
下一篇:MSP430单片机低功耗控制与系统工作模式详解

推荐阅读最新更新时间:2024-10-29 11:56

瑞萨整合晶圆厂 持续缩减成本 规划MCU新蓝图
据外界报道,瑞萨已经对日本高知县圆晶厂进行了彻底整合,并将向住友电工出售高知县香南市工厂的部分生产设备,并出租部分厂房。设备售价等未对外公开,瑞萨的约650名员工将继续受聘。 瑞萨此次有效地提高了日本高知县工厂的生产效率。他们主要是通过微型化芯片的尺寸,和简化生产设备来改善第一层生产线的产能,然后把高知工厂二楼的生产线集中至一楼,并出让了二楼的设备和空地。住友电工则计划着手进行半导体研发业务。 “经过这次彻底的改革,瑞萨最大限度地对剩余资源进行了利用。据此,瑞萨电子已经与住友电工达成协议,表示要向其转移一部分计划中的设备,并出租一部分可利用的空间。”据瑞萨报道。 作为瑞萨电子与NEC电子在2010年4月时合并
[半导体设计/制造]
STM32单片机自动售货机系统设计
一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602显示模块、矩阵按键模块、LED和蜂鸣器、继电器模块等。 主要功能: 系统运行后,LCD1602显示系统初始界面,可通过矩阵按键S1和S5选择商品,LCD液晶显示商品价格,共有8种价格商品可供选择,且选择的商品对应LED会有指示。可通过S9和S13选择商品数量,当需要返回时可按下S16键,选择好商品和数量后可按下S12键,此时LCD显示累计商品总价,此时可通过键盘输入投币数,LCD显示投币值,若投币数值大于等于商品累计总价,则驱动继电器出货,且蜂鸣器报警提示,LCD显示找零数。若投币数小于商品累计总价,则LCD显示继续投币。 二、软件设
[单片机]
STM32<font color='red'>单片机</font>自动售货机系统设计
使用单片机STM8S 驱动 CT1642
/*定义LED 数码管的位数,本驱动只实现3位和4位的操作,所以LED_BIT_COUNT的值只能是3或4*/ #define LED_BIT_COUNT 4 /****************************************************************************************************** ***************** * 按键值定义 *********************************************************
[单片机]
正点原子战舰第32讲 定时器中断实验
定时中断 定时框图 首先选择定时器的时钟 我们选择默认的内部时钟, 产生CK_PSC,然后配置时基电路,时基电路有预分频系数配置,计数器,重装载值的配置然后比如说,我们采用向上计数,那么定时器会从0计数到 自动装载值,这个时候如果开启了中断那么他们产生一个中断。去执行中断服务函数,然后又从0开始往上计数,这就是向上计数。 通常情况下都是选择内部时钟 这个寄存器在中文参考手册14.4.3 TIMX_SMCR 的最低位默认为000,是以内部时钟来驱动。 上图为内部时钟的来源示意图 它是由 AHB 经过APB1 的预分频然后给定时器和通用定时器来用。 APB1的时钟是由 AHB经过预分频得到的,定时器的 CK_INT
[单片机]
正点原子战舰第32讲 <font color='red'>定时器</font>中断实验
STC89系列高性能单片机及其应用
引言 随着电子技术的迅速发展,单片机技术的出现给现代工业测控领域带来了一次新的技术革命。目前,单片机以其高可靠性、高性能价格比,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走入家庭,洗衣机、空调等,到处都可见到单片机的踪影。 在单片机家族的众多成员中,MCS51系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。世界各大单片机厂商都在MCS51上投入了大量的资金和人力,围绕51内核,衍生出许多品种,增强51单片机的各种功能。MCS51家族是目前在单片机领域发展最快的一个品种。 这里要向大家推
[单片机]
以STM32为例,介绍单片机中的BOR/POR/PDR
STM32内部自带了一个可编程电压检测器(PVD),对VDD的电压进行监控可以通过电源控制寄存器PLS 位来设置监控电压的阀值,这样通过与VDD电压比较达到了监控电压的目的。 电源控制状态寄存器(PWR_CSR)中的PVDO用来表明VDD是高于还是低于PVD的电压阀值。当VDD下降到PVD阀值以下或VDD上升到PVD阀值之上时,通过外部中断16线上升或下降边沿触发设置,产生PVD中断。在中断处理函数中做相应的保护措施。 具体由以下图片和表格所示。 图1:阀值与PVD输出关系 表:具体寄存器参数 下面对上面的图片和表格中的数据做一个简要的解释: (1) PVD = Programmable Votage Detec
[单片机]
SPCE061A单片机采集脉搏数据
这里所用的脉搏传感器是HK-2000B,模拟信号,可以采集脉搏波形,建议采用500HZ定时器来定时采集,因为市面上一些心电模块也是500HZ,因此,在一个定时器中断服务程序程序中,可以同时处理两组数据!!!以下代码有点乱,因为是在我现有项目中复制过来的。 以下为ADConvert.c //============================================================ //传感器数据采集源代码 //============================================================ #include SPCE 061A .h #define AD_E
[单片机]
针对微控制器应用的采用FPGA的嵌入式应用
  当你打开任何智能电子设备(从老式的电视遥控器到全球定位系统),会发现几乎所有的设备都至少采用了一个微控制器(MCU),很多设备里还会有多个微控制器。MCU往往被用于专用的终端产品或设备中,它能够很好地完成特殊任务。另一方面,PC的大脑,即微处理器被设计用于实现许多通用的功能。微控制器可用于降低成本,加固工业和自动化应用,将其嵌入FPGA中时,还可以通过重新编程迅速改变功能。这种灵活性使得单个设备可应用于接口标准不同的多个市场。   在选择微控制器时应考虑哪些因素?本文将主要探讨采用FPGA的嵌入式应用。不过,选择任何微控制器的标准本质上都是相同的。设计者需要考虑下列因素:终端产品的成本是多少?实现设计以及存储控制程序需要多少
[工业控制]
针对<font color='red'>微控制器</font>应用的采用FPGA的嵌入式应用
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved