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.

[参考译文] TMS570LC4357:不会发生边沿中断#39;t

Guru**** 2465890 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/657136/tms570lc4357-edge-interrupt-doesn-t-occur

器件型号:TMS570LC4357

您好!

我的问题:如果出现上升沿、我不会获得中断。

我已经在引脚4上生成了一个 PWM 信号(2.5kHz)并且已经通过 HET IDE 将引脚30配置为边沿计数器:

l00 CNT{reg=a、max=374、data=0};
L01 MCMP{en_pin_action=on、pin=4、order=REG_GE_DATA、action= PULSELO、reg=A、 DATA=0xBB、hr_data=0x40}
L02 ECNT{NEXT = L00、PIN=30、EVENT = RISE、REG= B、IRQ=ON、DATA = 0}

引脚4和引脚30相连。

我已经成功测量了 PWM 信号、并在 while 环路中打印了边沿计数器的值、该值会递增。

我在 HCG 中配置了 Edge0、如下所示:

我的主函数:

int main (void)
{
/*用户代码 begin (3)*/
易失性 uint32 EdgeCounter=0;
//_enable_IRQ ();
hetInit();
edgeEnableNotification (hetREG1、edge0);

while (1){
EdgeCounter=edgeGetCounter(hetRAM1, 0);
printf ("边缘:%d\n"、EdgeCounter);
};
//用户代码结束*

返回0;
} 

我在 edgeNotification-和 hetNotification-函数中设置断点、但我的程序从未运行过。

我是否忘记了在 HCG 中配置的内容?

此致

肯南

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

    请检查 HETFLG (0x28h)的寄存器以查看哪个位被置位。 ECNT 是代码中的#2指令、当检测到上升沿时、位2应置位。

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

    您好、王、

    我已经设置了 HETINTENAS 寄存器的位2、但仍然没有中断。

    此致

    肯南

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

    只需检查您是否已解决问题。