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.

[参考译文] MSP430FR6047:MTIF 频率输出不符合预期

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1339484/msp430fr6047-mtif-frequency-output-not-as-expected

器件型号:MSP430FR6047

您好!

例如、我在您的示例中每2秒发送3个脉冲、

MTIF_clearPulseGenCounter(MTIF_BASE);
MTIF_enablePulseGen(MTIF_BASE);
MTIF_setPulseGenPulseGridFreq(MTIF_BASE, MTIF_PULSE_GRID_FREQUENCY_64HZ);
MTIF_setPulseGenCountNum(MTIF_BASE, 3);
MTIF_clearPulseKCountUpdateRequest(MTIF_BASE);
while(MTIF_isPulseKCountUpdated(MTIF_BASE) == MTIF_K_COUNT_IS_NOT_UPDATED);
// Enable the MTIF terminal pins
MTIF_enableTestPortOutput(MTIF_BASE);
// Enable test port output
MTIF_enableTestPortTerminalActivationBySW(MTIF_BASE);
// Clear pulse counter and enable pulse counter
MTIF_clearPulseCounter(MTIF_BASE);
MTIF_enablePulseCounter(MTIF_BASE);

我预计在2秒的窗口内3个脉冲会同样地分散、

我看到的是:

在这个标记为"我希望只有3个脉冲"的帧中。 我没有得到文档。 也许可以澄清一些事情。

此致

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

    尊敬的 Tunguskar:

    看起来您是从 SDK 中的 MTIF 示例开始工作。 是这样吗?

    我开始运行这个示例来尝试实现您需要的输出、但是我注意到这个示例并未完全展示如何正确改变脉冲栅格频率。 您是否也看到过此类产品?

    我最后通过 在更新脉冲网格频率后添加 MTIF_clearPulseGridFreqUpdateRequest ()函数来修复它,事物开始如预期的那样运行。 现在、我将 MTIF 设置为每两秒输出3个脉冲、因此我将粘贴下面的代码。  它看起来与您的非常相似。 我假定您的脉冲栅格频率被"卡住"在一个不正确的值上。

    要使用下面的代码,只需用下面的代码片段替换"/*--begin initialize the MTIF--*/"和"/*--end initialize the MTIF--*/"之间的整个段:

            /* ---Begin initialize the MTIF--- */
        // Enable the pulse generator, and set the initial grid frequency
        // Pulse grid freq. = 1024Hz (frame freq. = 1024/256 = 4Hz)
        MTIF_clearPulseGenCounter(MTIF_BASE);
        MTIF_enablePulseGen(MTIF_BASE);
        MTIF_setPulseGenPulseGridFreq(MTIF_BASE, MTIF_PULSE_GRID_FREQUENCY_64HZ);
        MTIF_clearPulseGridFreqUpdateRequest(MTIF_BASE);
        // KVAL = 4. 8 pulses per 256 periods of 1024Hz.
        MTIF_setPulseGenCountNum(MTIF_BASE, 3);
        // K-count update request
        MTIF_clearPulseKCountUpdateRequest(MTIF_BASE);
        // Wait for update acknowledge
        while(MTIF_isPulseKCountUpdated(MTIF_BASE) == MTIF_K_COUNT_IS_NOT_UPDATED);
        // Enable the MTIF terminal pins
        MTIF_enableTestPortOutput(MTIF_BASE);
        // Enable test port output
        MTIF_enableTestPortTerminalActivationBySWAndHW(MTIF_BASE);
        // Clear pulse counter and enable pulse counter
        MTIF_clearPulseCounter(MTIF_BASE);
        MTIF_enablePulseCounter(MTIF_BASE);
            /* ---End initialize the MTIF--- */

    如果这样没有帮助或者您有其他问题、请告诉我。