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.

[参考译文] TMS320F28335:TMS320F28335外部中断计时器

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/591178/tms320f28335-tms320f28335-external-interrupt-timer

器件型号:TMS320F28335

您好!

我需要在代码中使用用于 if-else 语句的外部中断计数器(XINT1CTR)。 我根据 XINT1CTR 的状态设置和清除 GPIO 引脚(配置为输出)的状态。 有人能帮忙吗?提前感谢。

中断空 XINT1_ISR (空)

counterxint++;

GpioDataRegs.GPASET.bit.GPIO30=1;

if  (XINT1CTR >500) //我需要使用 XINT1CTR 来切换 GPIO30的状态

GpioDataRegs.GPACLEAR.bit.GPIO30=1;


PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;

EINT;


此致

Nikhil

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

    您好、Nikhil、

    以获取您要使用的器件上的中断计数器值

    XIntrauptRegs.XINT1CTR

    因此、您的陈述如下所示:

    if (XIntertRegs.XINT1CTR > 500)

    如需更多信息、请参阅 DSP2833x_XIntrupt.h 或器件的用户指南。  见第138页。

    此致、

    Kris

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

    我尝试了您所说的内容、但 GPIO 引脚的状态没有改变。 它仅设为1。 此外、我尝试在 PDF 中找到该寄存器、但无法找到它。


    此致
    Nikhil
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否看过第138页上的内容?

    当事件发生时、计数器复位。 在 ISR 中执行该语句时、它不会为500、因此不会清除 GPIO。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kris、

    我看了你提到的第138页。 只要 XINT1CTR 计数器不退出中断,就不应将其清零。 因此、当(counterxint<500)...GPIO30 = 3.3V 和当(counterxint>500)...GPIO30 = 0V 时

    中断空 XINT1_ISR (空)



    GpioDataRegs.GPASET.bit.GPIO30=1;

    counterxint = XIntertRegs.XINT1CTR;

    while (counterxint>500)


    GpioDataRegs.GPACLEAR.bit.GPIO30=1;



    PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;

    EINT;



    此致
    Nikhil