TI中文支持网
TI专业的中文技术问题搜集分享网站

请教定时器

我现在用库含税写一个定时器函数。需求:当计数值达到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, &param);
// 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对应的中断向量可能是不同的

赞(0)
未经允许不得转载:TI中文支持网 » 请教定时器
分享到: 更多 (0)