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.

[参考译文] MSP430FR5994:TIIMER ns-unit

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1114658/msp430fr5994-tiimer-ns-unit

器件型号:MSP430FR5994
让我问您一个问题
、我使用 Google 翻译、因为我的祖国不是英语。

我们目前正在使用 MSP430FR5994开发软件。 对于语句和__delay_cycles (1)
、我使用它来延迟、但延迟很大。 是否可以生成以 ns 为单位的延迟?

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

    __delay_cycles ()不会延迟一段时间,而只会延迟一些 CPU 周期(根据 CPU (MCLK)速度,它与时间呈线性关系)。 它不能延迟少于1个 CPU 周期。 FR5994的运行速度不能超过16MHz、因此最短(理论)延迟为1/16MHz 或大约63ns。  

    _DELAY_CYCLES (1)很少有用、因为您看到的实际延迟主要由其周围的指令决定(通常需要多个 CPU 周期)。 如果您解释要做的事情、可能还有另一种方法来实现它。

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

    正如 Bruce 所说的、MSP430FR5994的最大频率为16MHz。 它无法实现 ns 单位的延迟。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    让我再问一个问题
    我的祖国不是英语、所以我使用 Google 翻译。
    
    我目前正在使用 MSP430FR5994开发软件。 将寄存器更改为内部时钟
    、因此我将其更改为16M
    它正在工作。
    目前、H / L 被输出到 I/O 端口以测量程序时间。 其中、如果您将分频比更改为1/2、它就会起作用、但如果您将其设置为1/1、则不会按预期工作。
    
    我可以使用1/1 of 16M 吗?
    
    请回答任何其他问题。
    
    感谢您的支持 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    让我向您提出其他问题
    我的祖国不是英语、所以我使用 Google 翻译。
    
    我目前正在使用 MSP430FR5994
    
    int LCD_data1 (LCD_d)
    {
    
    uint16_t DELAY_OSD = 0;
    
    // A0 = P4-1 CS = P4-6 R / W = P4-3
    P8OUT |= BIT1;
    开发软件。
    P4OUT |= 0x4E;// A0 = H CS = H R / W = H B1110 // B1111_1111 P4.6:CS1 = H P4.5:R = H P4.3:W = H P4.2:CS0 = H P4.1:A0 = H
    PORT_DATA (LCD_d);
    P4OUT &= 0xBF; // A0 = H CS = L R / W = H b1011 // b1011_1111 P4.6:CS1 = L P4.5:R = H P4.3:W = H P4.2:CS0 = H P4 .1:A0 = H
    //__delay_cycles (1);
    P4OUT &= 0xB7; // A0 = H CS = L R / W = L b0011 // b1011_0111 P4.6:CS1 = L P4.5:R = H P4.3:W = L P4.2:CS0 = H P4 .1:A0 = H
    P4OUT |= 0x4E; // A0 = H CS = H R / W = H B1110 // B1111111111_1111 P4.6:CS1 = H P4.5:R = H P4.3:W = H P4.2:CS0 = H P4 .1:A0 = H
    P8OUT &= 0xFD;
    
    }
    我正在创建一个被调用的例程。
    
    使用8M 时钟时为15us
    CPU
    
    设置是否存在问题?
    
    感谢您的支持 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    15uS (120个时钟)的声音比我预期的要长一些--我估计每一个位设置为5个时钟,或者大约30个时钟。  

    但这假设是一个理想情况。 您是否正在使用优化器?

    此外、PORT_DATA 是如何写入的? 我猜它相当简单、因此您可能会通过将其声明为"内联"来获得好处。