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.

[参考译文] RM57L843:使用 RTI 进行 GIO 导通时间测量

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/738073/rm57l843-gio-on-time-measurement-with-rti

器件型号:RM57L843
主题中讨论的其他器件:HALCOGEN

尊敬的 TI:

我尝试使用 RTI 定时器中断来测量 GIO (N2HET)寄存器的时间。 我想测量3ms、因此我在 HALCoGen 中将 RTI Compare1周期配置为0.01ms。

因此、中断每0.01ms 发生一次、在这种情况下、我检查 GIO 引脚上是否有3.3V (导通状态)、并使用0.01增大变量。

之后、我打印出每秒测量的导通时间(也可能小于或大于3ms)。

问题是、我测量的是6ms、这是它应该是的(3ms)的两倍。

我附加了代码片段。

有什么想法、会导致问题的原因是什么?

感谢您提前回复。

此致、

Zsolt Nagy

代码片段:

void rtiNotification (rtibase_t * rtiREG、uint32通知)

 if (notification =2U){

      EXPT = gioGetBit (hetPORT1、14);

       if (expt){

   毫秒+=0.01;

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

    您是否在指定的时间段内测量了"开启状态"的累积时间?
    1、导通(0.02ms)-关断(0.05ms)-导通(0.05ms)-关断(0.03ms)-导通(0.06ms):导通状态是否为0.02+0.05+0.06=0.13ms?

    如果不是、则需要在 exp 不为 true 时将毫秒重置为0。

    VIH=2V、VIL=0.8、请确保输入电压电平处于有效范围内。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的快速回复。 我认为我测量得很好、或者至少代码是好的。 我随附其中的其他部分(与前者一起)。 你怎么看? 问题仍然存在。 如果信号在2.8 - 3.2ms 范围内、则 GIO 切换将切换绿色 LED;如果不是、则切换红色 LED。 通过调试、我能够看到、即使"毫秒"变量被错误的值填充、平均值计算也很糟糕。

    提前感谢。

    此致、

    Zsolt Nagy

    代码片段:

    void rtiNotification (rtibase_t * rtiREG、uint32通知)



    if (notification =2U){

    EXPT = gioGetBit (hetPORT1、14);

    if (expt){

    静激= 1;
    毫秒+=0.01;

    否则、如果(静止){

    if (milliseconds >= 2.8 && milliseconds <=3.2){

    gioSetBit (gioPORTA、5、0);
    gioSetBit (gioPORTA、2、1);

    否则{
    gioSetBit (gioPORTA、5、1);
    gioSetBit (gioPORTA、2、0);

    死态= 0;
    msavg =(msavg +毫秒)/2;

    毫秒= 0;






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

    这些是我关于 RTI 的 HALCoGen 设置。

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

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

    如果您的代码仍然存在相同的问题、我建议使用 NHET 来测量脉宽。

    NHET 有一条名为 PCNT 的指令。 PCNT 在环路启动时检测外部信号的边沿、并测量其周期或脉冲持续时间。 如果使用高分辨率、则分辨率高达10ns。

    另一条名为 ECNT 的指令可用于对脉冲流(上升沿或下降沿、或两者)的边沿进行计数。