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.

[参考译文] MSP430FR2355:未找到 TimerB0中断 ISR

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1209151/msp430fr2355-timerb0-interrupt-isr-not-found

器件型号:MSP430FR2355

      Timer_B_initUpModeParam tparam = {0};
      tparam.clockSource = TIMER_B_CLOCKSOURCE_ACLK;
      tparam.clockSourceDivider = TIMER_B_CLOCKSOURCE_DIVIDER_32;
      tparam.timerPeriod = 20480; // 32 sec
      tparam.timerInterruptEnable_TBIE = TIMER_B_TBIE_INTERRUPT_DISABLE;
      tparam.captureCompareInterruptEnable_CCR0_CCIE = TIMER_B_CCIE_CCR0_INTERRUPT_ENABLE;
      tparam.startTimer = true;
      
      
#pragma vector=TIMER0_B0_VECTOR
__interrupt void TIMER0_B0_ISR(void)
{
    //Timer_B_stop(TB0_BASE);
    timerFlag = 1;
    _nop();
}

您好!

如果我运行该代码、它总是会卡住

优点:
;--如果用户不提供,则默认 ISR 处理程序
;--只需将设备放入 lpm0中
优点:

     .sect   ".text:_isr:__TI_ISR_TRAP"
   .align 2.    
   .global   __TI_ISR_TRAP
__ TI_ISR_TRAP:
       BIS.W    #(0x0010)、SR
       JMP __TI_ISR_TRAP

       NOP                    ; CPU40兼容性 NOP

我的 ISR 出了什么问题?

谢谢你

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

    我看不到您对 Timer_B_initUpMode ()的调用。 它是否使用合适的计时器(TB0_BASE)地址?

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

    尊敬的 David:

    处理程序 TIMER0_B0适用于 TIMEB 计时器。  您希望 TIMER0_B1有一个单独的处理程序来处理计时器的捕捉/比较中断。

    将处理程序更改为 vector=TIMER0_B1_vector。

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

    您好、谢谢您的回答!

    TIMER0_B0_VECTOR 是正确的向量。 我进入了 ISR 陷阱、因为没有 EUSCI 接收 ISR、并且我的 UART 正在接收数据。

    实际上、我的问题与计时器根本没有关系。 如果有其他人在这个线程上遇到问题、以上代码是正确的。

    BTW Timer_B_initUpMode (TB0_BASE、&tparam);在我的代码示例中丢失。