This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] EVM430-FR6047:定时器中断向量和定时器配置

Guru**** 2563960 points
Other Parts Discussed in Thread: EVM430-FR6047, MSP430FR6047

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/777586/evm430-fr6047-timer-interrupt-vector-and-timer-configuration

器件型号:EVM430-FR6047
主题中讨论的其他器件: MSP430FR6047

您好!

我´m 使用具有 MSP430FR6047控制器的 EVM430-FR6047、并希望配置一个计时器来生成周期性中断。 我的n´t 是、控制器不会进入中断服务例程。 我已经按照以下方式配置了计时器,在 while (1)循环之前,在主函数中调用 Timer_A0_Init()函数:

void Timer_A0_Init (void){
Timer_A_initUpModeParam timerAParam;
timerAparam.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;
timerAParam.clockSourceDivider = TIMER_A_CLOCKSOURCE_divider;
timerAparam.timerPeriod = 10000;
timerAparam.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_ENABLE;
timerAParam.captureCompareInterruptEnable_CCR0_CCIE = TIMER_A_CCIE_CCR0_INTERRUPT_DISABLE;
timerAParam.timerClear = timer_a_skip_clear;
timerAParam.startTimer = true;

Timer_A_initUpMode (TA0_BASE、&timerAParam);

Timer_A_enableInterrupt (TA0_BASE);
Timer_A_startCounter (TA0_BASE、TIMER_A_UP_MODE);

} 

中断服务例程当前仅尝试切换 LED 和端口引脚、如下所示:

#pragma vector=TIMER0_A0_VECTOR
__INTERRUPT void Timer_A0_ISR (void){
if (LEDisOn = 1){
LEDisOn = 0;
HAL_SYSTEM_LEDOff (HAL_SYS_LED_1);
GPIO_setOutputLowOnPin (GPIO_PORT_P7、GPIO_PIN5);
} 否则{
LEDisOn = 1;
HAL_SYSTEM_LEDOn (HAL_SYS_LED_1);
GPIO_setOutputHighOnPin (GPIO_PORT_P7、GPIO_PIN5);
}

Timer_A_clearTimerInterrupt (TA0_BASE);
} 

n´t 调试程序、我发现程序确实会进入服务例程、但会从主函数的开头重复启动。
我猜是我没有合适的中断矢量。 我´ve 了在相应的头文件中定义的许多其他定时器中断矢量、但没有任何效果。

为了实现完整性、我的主函数:

int main (void)
{
WDTCTL = WDTPW + WDTHOLD;

HAL_SYSTEM_Init();
HAL_UART_Init();

Timer_A0_Init();

GPIO_setAsOutputPin (GPIO_PORT_P7、GPIO_PIN5);

while (1)
{

。}
} 

提前感谢、致以诚挚的问候

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michael、

    您没有在主函数中启用 GIE。