MSP430F5438学习笔记1-定时器

发布者:静逸闲云最新更新时间:2015-10-15 来源: eefocus关键字:MSP430F5438  学习笔记  定时器 手机看文章 扫描二维码
随时随地手机看文章
比较模式:

    这是定时器的默认模式,当在比较模式下的时候,与捕获模式相关的硬件停止工作,如果这个时候开启定时器中断,然后设置定时器终值(将终值写入TACCRx),开启定时器,当TAR的值增到TACCRx的时候,中断标志位CCIFGx置一,同时产生中断。若中断允许未开启则只将中断标志位CCIFGx置一。

例子:比较模式就像51单片机一样,要能够软件设置定时间隔来产生中断处理一些事情,如键盘扫描,也可以结合信号输出产生时序脉冲发生器,PWM信号发生器。如:不断装载TACCRx,启动定时器,TAR和TACCRx比较产生中断处理。

捕获模式:

    利用外部信号的上升沿、下降沿或上升下降沿触发来测量外部或内部事件,也可以由软件停止。捕获源可以由CCISx选择CCIxA,CCIxB,GND,VCC。完成捕获后相应的捕获标志位CCIFGx置一

捕获模式的应用:

    利用捕获源的来触发捕获TAR的值,并将每次捕获的值都保存到TACCRx中,可以随时读取TACCRx的值,TACCRx是个16位的寄存器,捕获模式用于事件的精确定位。如测量时间、频率、速度等

例子:利用两次捕获的值来测量脉冲的宽度。或捕获选择任意沿,CCISx=”11“(输入选择VCC),这样即当VCC与GND发生切换时产生捕获条件

结合利用:异步通讯

同时应用比较模式和捕获模式来实现UART异步通信。即利用定时器的比较模式来模拟通讯时序的波特率来发送数据,同时采用捕获模式来接收数据,并及时转换比较模式来选定调整通信的接受波特率,达到几首一个字节的目的

-------------------------------------------------------------------------------------------------

利用MSP430单片机定时器A和捕获/比较功能模块结合使用,实现脉冲宽度的测量。

     本例程用到了定时器A的CCI1A端口(例如MSP430F14X的P1.2引脚)作捕获外部输入的脉冲电平跳变,同时结合简单的软件算法就能实现脉冲宽度的测量。在实际应用中可根据例程中的start,end,overflow三个变量来计算脉冲宽度。此功能模块在实际产品应用中体现出有较高的应用价值。

2-例程

#include

unsigned int start,end;

unsigned char overflow;

void main (void)

{

WDTCTL = WDTPW+WDTHOLD;                 //关闭看门狗定时器

P1DIR = BIT0+BIT4;                      //设置P1.0方向为输出

P1SEL = BIT2;                           //设置P1.2端口为功能模块使用

TACTL = TASSEL0+TACLR+TAIE+MC1;         //定时器A时钟信号选择ACLK,同时设置定时器A计数模式为连续增计模式

CCTL1 = MC0+SCS+CAP+CCIE;               //输入上升沿捕获,CCI0A为捕获信号源

_EINT();                                //中断允许

while(1);                               //LOOP

}

#pragma vector=TIMERA1_VECTOR            //定时器A中断处理

__interrupt void timer_a(void)

{

switch(TAIV)                            //向量查询

case 2:                              //捕获中断

if(CCTL1&CM0)                    //上升沿

{

CCTL1=(CCTL1&(~CM0))|CM1;     //更变设置为下降沿触发

start=TAR;                    //记录初始时间

overflow=0;                   //溢出计数变量复位

}

else if (CCTL1&CM1)              //下降沿

{

CCTL1=(CCTL1&(~CM1))|CM0;    //更变设置为上升沿触发

end=TAR;                    //用start,end,overflow计算脉冲宽度

}

break;

case 10:                           //定时器溢出中断

overflow++;

break;                          //溢出计数加1

default:break;

}

}

//例程结束

关键字:MSP430F5438  学习笔记  定时器 引用地址:MSP430F5438学习笔记1-定时器

上一篇:msp430系统时钟概述
下一篇:单片机的111条指令集合

推荐阅读最新更新时间:2024-03-16 14:35

STM8L探索套件学习笔记-测量VDD(七)
STM8L中等容量有25个模拟通道(1个快速通道1us和24慢速通道)。中等+和高密度器件有28个通道(4个快速1us和24个慢速通道)。内部有两个通道连接带温度触发器和内部电压参考电压。可以配置为单次和连续模式。可以设置ADC时钟预分频比,模拟看门狗,DMA功能,可以设置为6/8/10/12位转换精度。 今天我们测量下VDD参考电压,是通过测量VREF电压换算出来的,换算的方法有两种: 第一种比较准确,VREF是出厂做的校准,存储在FLASH当中。计算公式为:VDD=(VREF出厂值/VREF实际测量值) VDD出厂值 第二种方法是假定理论上VREF=1.224V,计算公式为: VDD=(1.224/VREF实际测量值) 4096
[单片机]
STM8S的定时器周期中断时钟测试系统
  1 问题   在下面的测试程序中,如果将Init_CLK()函数中的 CLK_CKDIVR |= 0x08;去掉’|‘,则TIM1的功能实现跟预设定相同(10ms中断一次),但是TIM2的PWM频率就变高了;如果加上,则TIM2的功能实现跟预设定相同(产生1Hz的PWM),但是TIM1的周期就变长了;   尝试了很多测试,均无效(买的开发板和另一块gs自画板测试也都一样)。   2 尝试   因为STM8S默认使用内部16M高速RC振荡器,且8分频,则系统启动主时钟为2M。即CLK_CKDIVR = 0X18;,如果再去赋值CLK_CKDIVR |= 0X08; 则主时钟还是不变即0X18,但是如果赋值为CLK_CKD
[单片机]
STM8S的<font color='red'>定时器</font>周期中断时钟测试系统
STM32定时器初步
1. STM32的Timer简介 STM32中一共有11个定时器,其中2个高级控制定时器(TIM1、TIM8),4个普通定时器(TIM2-TIM5)和2个基本定时器(TIM6-TIM7),以及2个看门狗定时器和1个系统嘀嗒定时器(SysTick)。 其中TIM1和TIM8是能够产生3对PWM互补输出的高级定时器,常用于三相电机的驱动,时钟由APB2的输出产生。TIM2-TIM5是普通定时器,TIM6和TIM7是基本定时器,其时钟由APB1输出产生。 2. 普通定时器TIM2-TIM5 2.1 时钟来源 计数器时钟可以由下列时钟源提供: ·内部时钟(CK_INT):(基本的定时功能) ·外部时钟模式1:外部输入脚(T
[单片机]
STM32<font color='red'>定时器</font>初步
STM32F10x 学习笔记 2 (SysTick 定时器
SysTick 定时器被集成在NVIC中。因此,只要是Cortex-M3 内核的单片机,就都有它。这个学习笔记就用SysTick 定时器来实现走马灯的功能。 SysTick 定时器非常简答,只有四个寄存器。这四个寄存器的含义在《Cortex-M3权威指南》那本书中讲的非常的清楚,这里不复述了,下面只讲讲在STM32上SysTick有什么特殊之处。按照CMSIS 标准,用C语言访问这四个寄存器时使用的寄存器名称分别如下: SysTick- CTRL SysTick- LOAD SysTick- VAL SysTick- CALIB SysTick- CALIB 的值固定为9000,因此,只有当系统嘀嗒时钟设定为9MHz(H
[单片机]
C51单片机学习笔记(二)——花样流水灯的实现
1.单片机引脚、晶振、复位的作用 复位电路:,复位是单片机的初始化操作。单片机启动时都需要先付薇,其作用是“清零”,也就是CPU和其他部件处于一个确定的初始状态,并从这个初始状态开始。 复位实质上是单片机的复位脚保持很短时间的高电平,按键复位就是通过按键接高电平(按一下的时间已经足够) 时钟电路(晶振):产生时间信号,使单片机按照一定的时间规律进行指令,晶振频率越高,时钟信号的周期就小,单片机运行也就越快。 32个I/O口 P1.0 ~ P1.7 对应1 ~ 8 号引脚 P2.0 ~ P2.7 对应21 ~ 28 号引脚 P3.0 ~ P3.7 对应10 ~ 17 号引脚 P0.0 ~ P0.7 对应39
[单片机]
C51单片机<font color='red'>学习</font><font color='red'>笔记</font>(二)——花样流水灯的实现
STM32学习笔记(4) 高级定时器-两路互补的PWM输出(带死区和刹车控制)
1.实验目的 使用高级定时器,输出两路互补的PWM输出,需要有带死区和不带死区两种情况 2.实验效果 图1:不带死区的两路互补的PWM输出 图2 :带死区的两路互补的PWM输出 3.理论部分 3.1时钟源 内部时钟(基本定时器,通用定时器时钟源来自PCLK1,但高级定时器的时钟源来自PCLK2(72M)) 实践中几乎无需使用:外部时钟模式1、外部时钟模式2 3.2时基单元 组成: 16bit预分频PSC 16bit计数器CNT 8bit重复计数器RCR(高级定时器独有) 16bit自动重装载寄存器ARR 3.3输入捕获 作用:对输入信号的上升沿/下降沿/双边沿进行捕获,测量输入信号的脉宽,和
[单片机]
STM32<font color='red'>学习</font><font color='red'>笔记</font>(4) 高级<font color='red'>定时器</font>-两路互补的PWM输出(带死区和刹车控制)
PIC看门狗定时器WDT的理解
简介:pic单片机看门狗计时器(Watch Dog Timer)是一个片内自振式的RC振荡计时器,无需任何的外接元件。这意味着即使芯片OSC1/OSC2上振荡停止了(例如执行指令SLEEP后),WDT照样保持计时。WDT计时溢出将产生RESET。在PIC16C5X 芯片内有一个特殊的谓之 定义EPROM (Configuration EPROM)的单元,其中的一个位是用于定义WDT的。 pic单片机看门狗计时器(Watch Dog Timer)是一个片内自振式的RC振荡计时器,无需任何的外接元件。这意味着即使芯片OSC1/OSC2上振荡停止了(例如执行指令SLEEP后),WDT照样保持计时。WDT计时溢出将产生RESET。在P
[单片机]
C51单片机定时器/计数器中断功能详细分析(二)
一.外部中断相关寄存器 1.定时器/计数器控制寄存器控制寄存器(TCON) IT0:外部中断0触发方式控制位 当IT0=0时,为电平触发方式(低电平有效) 当IT0=1时,为边沿触发方式(下降沿有效) IT1:外部中断1触发方式控制位 当IT1=0时,为电平触发方式(低电平有效) 当IT1=1时,为边沿触发方式(下降沿有效) 2.中断允许控制寄存器(IE) EX0:外部中断0允许位; EX1:外部中断1允许位; EA :CPU中断允许(总允许)位。 二.外部中断的处理过程 1、设置中断触发方式,即IT0=1或0,IT1=1或0 2、开对应的外部中断,即EX0=1或EX1=1; 3、开总中断,即EA=1; 4、等待外部设
[单片机]
C51单片机<font color='red'>定时器</font>/计数器中断功能详细分析(二)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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