找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 930|回复: 0
收起左侧

MSP430F169定时器捕获模式进入不了中断

[复制链接]
ID:813180 发表于 2020-9-22 18:37 | 显示全部楼层 |阅读模式
问题:定时器捕获进入不了中断,希望大手子们帮我看看配置哪里出错了


芯片:MSP430F169
引脚P2.4
代码:

#include "msp430x16x.h"
#include "timerA.h"
#include "delay.h"




void timerA_init(void)
{
//P2.4捕获低电平
  TACTL   = TASSEL_2+MC_2+TAIE+TACLR+ ID_1;//SMCLK,连续计数,中断允许,计数器清零 8分频1MZH
  TACCTL2 = CAP+CM_2+CCIS_0+SCS+CCIE;//开捕获模式,下降沿捕获,CCI1A输入,同步捕获,中断允许
}




#pragma vector=TIMERA1_VECTOR  //捕获中断向量
__interrupt void Timer_A(void)
{
  switch(TAIV)    //2为TA1捕获向量地址4为TA2捕获向量地址
  {
    case 0X02 :
      P4OUT |=BIT4;
      delay_ms(200);
      P4OUT &=~BIT4;
      break;  
   
    case 0X04 :
      P4OUT |=BIT4;
      delay_ms(200);
      P4OUT &=~BIT4;
      break;  
  }
}



#include "msp430x16x.h"
#include "gpio.h"


void GPIO_init(void)
{
  P4DIR =0X3c;          //P4.2 P4.4触发信号
  P4SEL |=  BIT3+BIT5;          //P4.3 P4.5 接受反馈信号
  
  P2DIR &= ~BIT4;
  P2SEL |= BIT4;
  
  P6DIR |= BIT4;          //P6.4反馈信号指示灯                     
}


#include "System_clock.h"
#include<msp430x16x.h>


void System_clock(void)
{
  unsigned int iq0;
  BCSCTL1&=~XT2OFF;
  do
  {
    IFG1&=~OFIFG;
    for(iq0=0xff;iq0>0;iq0--);
  }
  while((IFG1&OFIFG)!=0);
  BCSCTL2=0x88;
}




#include "msp430x16x.h"
#include "System_clock.h"
#include "GPIO.h"
//#include "timerb.h"
#include "timerA.h"
#include "delay.h"


unsigned int i;


void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  System_clock();  
  GPIO_init();
//  timerb_init();
  timerA_init();
  _EINT();
  P4OUT &= ~BIT2;
  P4OUT &= ~BIT4;
  P6OUT |= BIT4;
  delay_ms(2000);
  while(1)
  {
    i++;
    P4OUT |= BIT2;
    P6OUT &= ~BIT4;
    delay_ms(100);
    P4OUT &= ~BIT2;
    P6OUT |= BIT4;
    delay_ms(1100);
    if(i==1500)
    {
      while(1);
    }
  }
}







回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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