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.

[参考译文] MSPM0L1306:如何调用 TIMG4的中断?

Guru**** 2422660 points
Other Parts Discussed in Thread: MSPM0L1306, LP-MSPM0L1306, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1324555/mspm0l1306-how-to-invoke-the-interrupt-of-timg4

器件型号:MSPM0L1306
Thread 中讨论的其他器件:SysConfig

我当时在工程中尝试使用 TIMG4、因此我从 mspm0_sdk_1_30_00_03修改了基于"pwm_leed_driver_lp_MSPM0L1306_nortos_ticlang" 的代码。

在修改之前、我对 LP-MSPM0L1306上的示例进行了调试。  

代码可能会进入   void PWM_0_INST_IRQHandler (void)的中断

然后、我使用系统配置来添加 TIMG4。

我遇到了一个问题、我不认为选择计时器。

为了使用 TIMG4、我启用了 L1306的所有计时器、所以请让我知道如何在系统配置中分配外设(例如仅使用 TIMG4)吗?

从以下代码中、我了解到 TIMG4分配给了 PWM_1_INST。

/* PWM_1的定义*/
#define PWM_1_INST                             TIMG4

因此我  在 main 中添加了 TIMG4的初始化代码。

int main(void) {
  SYSCFG_DL_init();

  NVIC_EnableIRQ(PWM_0_INST_INT_IRQN);
  NVIC_EnableIRQ(PWM_1_INST_INT_IRQN);

  DL_TimerG_startCounter(PWM_0_INST);
  DL_TimerG_startCounter(PWM_1_INST);

  while (1) {
    __WFI();
  }
}
并添加了 TIMG4 IRQHandler。
void PWM_1_INST_IRQHandler(void) {
  switch (DL_TimerG_getPendingInterrupt(PWM_1_INST)) {
  case DL_TIMER_IIDX_LOAD:
    if (dc1 <= 10) {
      mode1 = 1;
    } // if reached lowest dc (10%), increase dc
    else if (dc1 >= 90) {
      mode1 = 0;
    } // if reached highest dc (90%), decrease dc
    if (mode1) {
      pwm_count1 -= 20;
      dc1 += 1;
    } // up
    if (!mode1) {
      pwm_count1 += 20;
      dc1 -= 1;
    } // down
    DL_TimerG_setCaptureCompareValue(PWM_1_INST, pwm_count1,
                                     DL_TIMER_CC_0_INDEX); // update ccr0 value                                    
    break;
  default:
    break;
  }
}

 代码编译完毕后、我开始在  LP-MSPM0L1306上调试此代码。

遗憾的是、未调用 TIMG4的中断。

代码不会运行到 "void PWM_1_INST_IRQHandler (void)"。

您愿意帮助检查如何使代码适用于 TIMG4吗?

我将代码附在这里。

e2e.ti.com/.../pwm_5F00_led_5F00_driver_5F00_LP_5F00_MSPM0L1306_5F00_nortos_5F00_ticlang.zip

非常感谢。

Br

凯利

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

    尊敬的 Kelly:

    您似乎在 SysConfig 设置中未启用 PWM_1、PWM_2或 PMW3的中断或选择中断。  是针对 PWM_0执行的操作。

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

    您好、Dennis、

     它的确有效。 谢谢。

    我是系统配置新手、是否有专门的文档提供给新学员?

    如果我只想使用 TIMG4、如何进行配置。 似乎我必须配置除 TIMGx 外的所有 TIMGx 和 Delet 欧姆器。

    您能帮我指引吗?

    非常感谢。

    Br

    凯利

      

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

    请忘记这个问题。

    我发现我可以在 PinMux 中修改 TIMGx。

    谢谢。