MSP430捕获器简单实用

发布者:Yuexiang666最新更新时间:2020-01-18 来源: eefocus关键字:MSP430  捕获器  定时器A 手机看文章 扫描二维码
随时随地手机看文章

MSP430定时器A捕捉脉实例[调试通过,很好用]


运行代码

 

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

//功能:利用定时器A的捕捉能测量脉冲信号的脉宽  

//  

//  

//                MSP430F449  

//             -----------------  

//         /||              XIN|-  

//          | |                 | 32kHz  

//          --|RST          XOUT|-  

//            |                 |  

//            |        P1.5/ACLK|---+  

//            |                 |   |  

//            |         P2.0/TA2|<--+  

//            |                 |  

//            |                 |  

//说明:ACLK要进行8分频(4K),并将其作为外部的要捕获的脉冲;  

//MCLK=SMCLK=8M;  

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

#include    

int pwm_start,pwm_end,pwm_wide=0;  

 

void main(void)  

{  

  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT  

  P1DIR = 0x20;                   //  P1.5 输出  

  P1SEL = 0x20;              // P1.5输出ACLK  

   

  P2SEL|=BIT0;                              //P2.0 CCI2A  

   

  SCFI0 |= FN_4;  

  SCFQCTL = 121;                   // (121+1) ×32768 *2= 7.99Mhz  

  FLL_CTL0=DCOPLUS+OSCCAP1;       //MCLK=SMCLK=8M  

   

  FLL_CTL1 |= FLL_DIV_8;                         //ACLK要进行8分频,ACLK=4K  

   

   

  TACCTL2 =CAP+CM_3+CCIS_0+SCS+CCIE;  //捕获模式,上升和下降都捕获,选择CCI2A,同步,捕获中断开          

                                      //Capture input select: 0 - CCI2A  

  TACTL = TASSEL_2 + MC_2 ;    //SMCLK=8M,L连续计数模式  

  _EINT();                 //开总中断  

  LPM0;  

  _NOP();  

  pwm_wide=pwm_end-pwm_start;  

 

  while(1);  

}  

 

// Timer_A3 Interrupt Vector (TAIV) handler  

#pragma vector=TIMERA1_VECTOR  

__interrupt void Timer_A(void)  

{  

   

  switch(TAIV)  

 {case 2:break;  

  case 4:  

     if(TACCTL2 & CCI)  

        pwm_start=CCR2;    

     else  

        pwm_end=CCR2;  

     //pwm_wide=pwm_end-pwm_start;  

     break;  

  case 10:  

     break;  

  }  

  LPM0_EXIT;  

}  


检验方法: 

在调试环境下,在watch 窗口观察pwm_end和pwm_start,然后相减! 

我计算了一下。在所给的例子中理论值pwm_end-pwm_start=976 

通过观察的结果是978,还是有点误差,可能是由于晶振的值原因,计算上的舍入有点偏差。

关键字:MSP430  捕获器  定时器A 引用地址:MSP430捕获器简单实用

上一篇:MSP430--时钟模块
下一篇:msp430硬件II2C

推荐阅读最新更新时间:2024-10-28 10:25

基于MSP430F2012和IA4420的主动式RFID标签设计
概述   射频识别(RFID)是近年来成长最快的无线技术之一,它将条形码及无线技术的优势带入资产管理、产品跟踪、海运及运输识别、库存控制和定位检测中。大多数RFID系统采用通过RF从阅读器获取电源的被动式标签。这样有利于减小标签尺寸和降低成本,但是会限制读取范围和数据存储能力。带电池的主动式标签可以提供较大范围的读取能力和更强的可靠性,不过其尺寸较大,也更贵一些。采用最新的低功耗单片机和无线数传芯片,设计一种不仅读取距离远、可靠度高,而且成本更低、寿命更长的主动式RFID标签是本设计研究的目的。   设计方案分析   本设计完成的主动式RFID应具有:低成本、低功耗、阅读距离长及距离可调、电池供电等特性。分析主动式RFID的
[单片机]
基于<font color='red'>MSP430</font>F2012和IA4420的主动式RFID标签设计
基于MSP430的极低功耗系统设计
摘要:MSP430是TI公司出品的一款强大的16位单片机,其显著特点是具有极低的功耗。本文对构造以MSP430为基础极低功耗系统作为有益的探讨,对于设计各种便携式设备都具有较高的参考价值。 关键词:极低功耗系统 MSP430 低功耗管理 1 影响系统功耗的主要因素 对于一个数字系统而言,其功耗大致满足以下公式:P=CV2f,其中C为系统的负载电容,V为电源电压,f为系统工作频率。由此可见,功耗与电源电压的平方成正比,因此电源电压对系统的功耗影响最大,其次是工作频率,再就是负载电容。负载电容对设计人员而言,一般是不可控的,因此设计一个低功耗系统,应该考虑到不影响系统性能前提下,尽可能地降低电源的电压和使用低频率的时钟。下面对
[应用]
MSP430内部时钟(DCO)频率测量
时钟电路 数字振荡器(DCO) 电路按信号形式可分为数字和模拟。 数字电路处理的是数字信号。数字电路又可分为组合逻辑电路与时序逻辑电路。时序电路可以完成组合电路的功能,反之则不成立。两者的区别是时序电路与信号的时间有关,即有一个时钟信号。 在MSP430芯片中有3个时钟源,内部晶体振荡器(DCO)、外部低速时钟源(XT1)、外部高速时钟源(XT2)。DCO的工作可以不要外部不要外部器件的支持,因此降低了电路的复杂程度,但是它是基于RC的工作原理,工作频率不稳定。XT1、XT2需要外接一个晶振,所以工作频率稳定。采用两个外部晶振是让一个工作在高频一个工作在低频,高频晶体可以使程序执行速度快,低速晶体使芯片功耗降低。 /
[单片机]
MSP430远程升级解决方案
MSP430系列单片机常用的程序下载方式为JTAG、BSL,实际产品应用中会用到固件的升级,如果是异地设备,则给升级带来不少麻烦。有没有普通用户就可操作的固件升级方案呢?就像BootLoader,可通过命令选择启动方式,甚至实现远程升级?答案是有的。其原理就是通过FLASH操作,将新的固件刷到FLASH中去,然后转到固件起始地址运行。 MSP430串口升级程序 MSP430 FLASH ROM 1. 如下图所示, 如下图所示, 如下图所示, FLASH ROM为 32K 字节(FLASH大小要根据你用的具体型号做调整),分为 64 个段,每个段分为512字节,512字节又细分为 8个块 ,每块64字节。 2. MSP4
[单片机]
<font color='red'>MSP430</font>远程升级解决方案
MSP430fr6989的串口DMA发送实验例程(从0写起,亲测可玩)
本例子选择MSP430fr6989的P2.0与P2.1作为串口UCA0TXD UCA0RXD ;(代码不多,主要对寄存器的操作,急于求成都写在main.c文件,做工程不建议这样做) 主要用到这两个寄存器: DMACTL0用于选择DMA通道;比如ADC12,串口 ,IIC,SPI,此处多说一句:DMA是一种方式,而SPI,IIC,串口等属于外设,两者不是一类概念,嘿嘿嘿 DMAxCTL用于DMA详细设置;此为重点!!!DMAxCTL包括: DMADT:选择传输方式是一个单字节还是一个块transfer;本例子选简单的单字节transfer; DMADSTINCR:分解单词DMA dest increase 即数据传送目标地址增加
[单片机]
msp430 看门狗设置
看门狗定时器( Watchdog Timer (WDT_A))实际上是一个特殊的定时器,即可以用来作为看门狗使用,也可以用作定时器。 所谓的看门狗功能,是指可以监控程序是否由于某些干扰或者错误而跑飞。其原理就是发生故障的时间满足规定的定时时间后,产生一个非屏蔽中断,使系统复位。这样当在调试程序或预计程序在某个地方可能瞬时发生错误时(如外部电路干扰),选用设置看门狗定时中断可以避免程序跑飞。 当然,它也可以用作一般的定时功能。 不过实际上,由于看门狗定时器(作看门狗使用时)需要很严密的设置(否则程序容易经常重启),所以很多人都不会使用这项功能。所以,程序一开始就加上一句话:WDTCTL=WDTPW+WDTHOLD来关闭看门
[单片机]
<font color='red'>msp430</font> 看门狗设置
德州仪器推出低功耗电容式触摸解决方案
日前,德州仪器 (TI) 宣布推出超低功耗 MSP430 16 位微控制器电容式触摸产品系列,可在全部MSP430 器件上实现全球最低功耗的触摸感测功能。借助 TI 的嵌入式处理技术专长,该系列推出了全新的硬件及免费软件解决方案,为开发人员提供了面向基于微控制器电容式触摸应用的易用、成本效益型选项,同时仍可受益于 MSP430 器件所拥有的电池电量节省特性。 免版税的 MSP430 电容式触摸软件库给开发人员提供了可以为任意 MSP430 微控制器增添触摸感测功能的选项。这种开源软件库免除了开发复杂触摸感测算法的需要,并可支持多种不同的电容性触摸传感器,包括按钮、滑块、滚轮和近距离传感器。尽管软件库支持所有的 MSP43
[单片机]
MSP430的编程和仿真的区别
通俗的说,仿真器是用来调试仿真的,编程器是用来批量生产时对MCU进行烧写目标代码的。对于MSP430来说,无论仿真还是烧写程序一般可以通过:JTAG、SBW、BSL接口进行。JTAG、SBW接口可以用于仿真接口,BSL接口不能用于仿真。而编程器则三种接口都支持。所以并不能说JTAG只支持仿真不支持编程,这是概念错误,JTAG仅仅是一种接口协议而已。 下面简单描述一下三种接口的区别: 1、JTAG是边界扫描技术,其在430内部有逻辑接口给JTAG使用,内部有若干个寄存器连接到了430的内部数据地址总线上,所以可以用JTAG访问 430内部的所有资源,包括对FLASH的读写操作。所以可以用于对MSP430的仿真及编程。主要连接线
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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