4157|8

14

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于定时器的捕获模块 [复制链接]

各位大神谁有关于定时器捕获模块的程序,能不能给贴一个,什么型号的430都行的啊!谢谢!

最新回复

我是一个初学MSP430的,你这个程序看不太懂,能解释一下嘛?谢了……  详情 回复 发表于 2013-7-22 16:02

点评

我的程序,只有在片上内部,用接地和接电源来产生捕捉信号,才能成功。引脚外面的信号却捕捉不到  详情 回复 发表于 2012-7-11 08:36
 
点赞 关注

回复
举报

3404

帖子

6

TA的资源

裸片初长成(初级)

沙发
 
木有用过430,顶起来让别人回复。
 
 

回复

14

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
多谢帮顶
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 楼主 angeleader 的帖子

我的程序,只有在片上内部,用接地和接电源来产生捕捉信号,才能成功。引脚外面的信号却捕捉不到
 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(中级)

5
 
请问能不能把您的程序的中断的部分让我参考一下,我不知道该怎么写中断部分的程序,比如怎么计算输入的方波的频率等等。
 
 
 

回复

5015

帖子

12

TA的资源

裸片初长成(初级)

6
 
  1. //***********************************************************************
    // MSP-FET430P140 Demo - Timer_A0, Capture of ACLK/8 using SMCLK
    //
    // Description: Input capture of ACLK/8 on P1.1(TA0)
    // Run to breakpoint at the _NOP() instruction to see 16 capture
    // values and the differences.
    // ACLK = 32768Hz, MCLK = SMCLK = default ~800kHz
    // //* An external watch crystal on XIN XOUT is required for ACLK *//
    //
    // MSP430F149
    // -----------------
    // /|\| XIN|-
    // | | | 32kHz
    // --|RST XOUT|-
    // | |
    // | P2.0/ACLK|---+
    // | | |
    // | P1.1/TA0|<--+
    // | |
    // | P1.0|--->LED

    //
    // H. Grewal
    // Texas Instruments Inc.
    // Feb 2005
    // Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.21A
    //******************************************************************************

    #include <msp430x14x.h>

    unsigned int new_cap=0;
    unsigned int old_cap=0;
    unsigned int cap_diff=0;

    unsigned int diff_array[16]; // RAM array for differences
    unsigned int capture_array[16]; // RAM array for captures
    unsigned char index=0;
    unsigned char count = 0;

    void main(void)
    {
    volatile unsigned int i;
    WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
    for (i=0; i<20000; i++) // Delay for crystal stabilization
    {
    }
    P1DIR = 0x01; // Set P1.0 out,1.1 input dir
    P1OUT &= ~0x01; // LED off
    P1SEL = 0x02; // Set P1.1 to TA0
    P2DIR = 0x01; // P2.0-ACLK
    P2SEL |= 0x01;
    BCSCTL1 |= DIVA_3; // ACLK/8

    CCTL0 = CM_1 + SCS + CCIS_0 + CAP + CCIE; // Rising edge + CCI0A (P1.1)
    // + Capture Mode + Interrupt

    TACTL = TASSEL_2 + MC_2; // SMCLK + Continuous Mode

    _BIS_SR(LPM0_bits + GIE); // LPM0 + Enable global ints
    }

    #pragma vector=TIMERA0_VECTOR
    __interrupt void TimerA0(void)
    {
    new_cap = TACCR0;
    cap_diff = new_cap - old_cap;

    diff_array[index] = cap_diff; // record difference to RAM array
    capture_array[index++] = new_cap;
    if (index == 16)
    {
    index = 0;
    P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR
    }
    old_cap = new_cap; // store this capture value
    count ++;
    if (count == 32)
    {
    count = 0;
    _NOP(); // SET BREAKPOINT HERE
    }

    }
复制代码

点评

我是一个初学MSP430的,你这个程序看不太懂,能解释一下嘛?谢了……  详情 回复 发表于 2013-7-22 16:02
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

7
 

#include "MSp430G2553.h"
unsigned int start,end;
unsigned char overflow;

void main( void )
{
 
  WDTCTL = WDTPW + WDTHOLD;
  P1DIR|=BIT0+BIT6;//P1.6LED,
  P1SEL|=BIT0+BIT2;//P1.0->ACLK输出,P1.2->捕获输入
  P1OUT&=~BIT6;//关闭LED
  BCSCTL1 =DIVA_3;//ACLK8分频(vlo=12Khz)
  CCTL1=CM_1+SCS+CCIS_0+CAP+CCIE;//上升沿+同步+CCI0A(p1.2)+捕获功能+捕获中断
  TACTL=TASSEL_2+MC_2+ID_3+TAIE+TACLR;//SCLK(DCO=1.1Mhz)8分频,连续计数模式
  _BIS_SR(LPM0_bits+GIE);
}
#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer_A (void)
{
  switch(TAIV)
  {
    case 2:
      if(CCTL1&CM_1)
      {
        CCTL1=(CCTL1&(~CM_1))|CM_2;
        start=TAR;
        overflow=0;
      }
     if(CCTL1&CM_2)//else if与if区别要注意
      {
          CCTL1=(CCTL1&(~CM_2))|CM_1;
          end=TAR;
      }
      P1OUT|=BIT6;
      break;
    case 10:
      overflow++;
      break;
    default:
      break;
   }
}

 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(中级)

8
 
好的 谢谢!
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

9
 

回复 6楼wstt 的帖子

我是一个初学MSP430的,你这个程序看不太懂,能解释一下嘛?谢了……
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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