找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 820|回复: 0
打印 上一主题 下一主题
收起左侧

MSP430单片机定时器A捕获,求助

[复制链接]
跳转到指定楼层
楼主
ID:813180 发表于 2020-9-24 18:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
芯片 :F169
用途:使用TA2做外设捕获电平跳变信号
问题:进不去中断,信号用示波器看过没问题就是进不去中断,我用定时器B复用为捕获模式完全能行,A就废了


代码

//P64是LED灯
#include "msp430x14x.h"
unsigned int n;//计录次数
void main(void)
{
  
  WDTCTL = WDTPW + WDTHOLD;                        //看门狗设置
   unsigned int iq0;
  BCSCTL1&=~XT2OFF;
  do
  {
    IFG1&=~OFIFG;
    for(iq0=0xff;iq0>0;iq0--);
  }
  while((IFG1&OFIFG)!=0);
  BCSCTL2=0x88;

  TACTL = TASSEL_2+MC_2;//SMCLK,连续计数,中断允许,计数器清零
  TACCTL2 = CAP+CM_1+SCS+CCIS_0+CCIE;//捕获模式,上升沿捕获,CCI1A输入,同步捕
//  P1DIR &=~ BIT2;//P1.2输入
//  P1SEL |=BIT2; //P1.2第二功能,捕获输入
/*   P2DIR &= ~BIT4;
  P2SEL |= BIT4;
*/
  P1DIR &= ~BIT7;
  P1SEL |= BIT7;
  P6DIR|=BIT4;
  _EINT();//开全局中断
  P6OUT |= BIT4;
  P6OUT &= ~BIT4;
  _EINT();
  while(1)
  {     
  }
}
#pragma vector=TIMERA1_VECTOR  //捕获中断向量
__interrupt void Timer_A(void)
{
  switch(TAIV)    //2为捕获向量地址
  {
        case 0: n++;break;
        
        case 2: n++;break;
        
        case 4: n++;break;
        
        case 10: n++;break;
  }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表