×
单片机 > 单片机程序设计 > 详情

MSP430F5438A中断问题

发布时间:2020-09-01 发布时间:
|

写一个简单程序进入中断,首先进入中断的条件:


1.时钟源配置好


2.中断的寄存器配置好


3.中断向量表配置好


以上三点都配置好是不是就应该进入中断了?帮忙看看下面的程序进不去中断,我用的是捕获模式,捕获引脚1.4有捕获信号。


#include “msp430.h”

void Init_MCLK(void);

int main( void )

{

// Stop watchdog timer to prevent time out reset

WDTCTL = WDTPW + WDTHOLD;

P5DIR |= BIT4;

P5OUT |= BIT4;


Init_MCLK();

P1DIR &= ~BIT4;

P1SEL |= BIT4;


TA0CTL= TASSEL1+TACLR + ID_2+MC1; //时钟源 SMCLK+ 定时器清除位 + 4分频  + 连续模式:计时器计数到ffh             

TA0EX0=TAIDEX_2;

TA0CCTL3=SCS + CAP; //同步捕获 + 捕获模式

TA0CCTL3 |= CM_1;    /*上升沿捕获*/

TA0CCTL3 |= CCIE;   //捕获中断使能               

TA0CTL |=TAIE;   


while(1);

return 0;

}

void Init_MCLK(void)

{

unsigned char i;

PMMCTL0 =PMMPW+PMMCOREV0;

P5SEL |= 0x0C ; // 端口功能选择振荡器

UCSCTL6 &= ~XT2OFF ; // 振荡器使能

UCSCTL3 |= SELREF_2 ; // FLLref = REFO

UCSCTL4 |= SELA_2 ; // ACLK=REFO,SMCLK=DCO,MCLK=DCO

do

{

UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); // 清除 XT2,XT1,DCO 错误标志

SFRIFG1 &= ~OFIFG ;

for (i = 0xFF; i > 0; i–);

}while(SFRIFG1&OFIFG) ; // 检测振荡器错误标志

UCSCTL6 |= XT2DRIVE0 ; // XT2 驱动模式 8~16MHz

UCSCTL4 |= SELS_5 + SELM_5 ; // SMCLK = MCLK = XT2

}

#pragma vector=TIMER0_A1_VECTOR

__interrupt void TimerA0_3(void)

{

// LPM4_EXIT;

unsigned char i;

for (i = 0xFF; i > 0; i–);


}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32中断向量表的位置.重定向