我现在用库含税写一个定时器函数。需求:当计数值达到CCR0时产生中断,计数清零并重新计数,我的代码如下,并不能产生中断,帮忙检查一下是什么问题。
#include "msp430.h"
#include "driverlib.h"
uint16_t cnt;
void timer_init(void)
{
//Start timer in continuous mode sourced by ACLK
Timer_A_clearTimerInterrupt(TIMER_A1_BASE);
Timer_A_initUpModeParam param = {0};
param.clockSource = TIMER_A_CLOCKSOURCE_ACLK;
param.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1; param.timerPeriod = 1000;
param.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_ENABLE;
param.captureCompareInterruptEnable_CCR0_CCIE = TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE;
param.timerClear = TIMER_A_DO_CLEAR ;
param.startTimer = true;
Timer_A_initUpMode(TIMER_A0_BASE, ¶m);
// Timer_A_startCounter(TIMER_A1_BASE,
// TIMER_A_UP_MODE
// );
//Enter LPM0, enable interrupts
__bis_SR_register(LPM0_bits );
}
//******************************************************************************
//
//This is the TIMER1_A3 interrupt vector service routine.
//
//******************************************************************************
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void)
{ Timer_A_clearTimerInterrupt(TIMER_A0_BASE);
cnt++;
if(cnt%100 == 0 )
P3OUT ^= BIT3;}
shuai yang7:
芯片用的是MSP430FR5849,有没有大神帮忙看下
灰小子:
没看到使能总中断
shuai yang7:
回复 灰小子:
是要加上__enable_interrupt();这一句吗?我刚加上试了试还是不行,是不是我指向的中断不对?
灰小子:
回复 shuai yang7:
中断向量你翻一这个型号的datasheet,里面有说明。
我用手机今天下载datasheet老是不成功,不知道为什么。昨天还可以下载。
user4132520:
两个问题,一是中断有没有使能,包括定时器的中断和全局中断,二是对于TIMER0,不同的计数器CCR0,CCR1,CCR2对应的中断向量可能是不同的
TI中文支持网




