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.

[参考译文] MSP430G2553:延迟功能

Guru**** 2502075 points
Other Parts Discussed in Thread: MSP430G2253

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/664927/msp430g2553-delay-function

部件号:MSP430G2553
主题中讨论的其他部件:MSP430G2253

大家好,

在MSP430中,如果我编写语句__DELAY周期(1000),它会产生多长时间的延迟。这是否意味着1毫秒的延迟,因为MSP430在默认情况下以1.02MHz的频率工作?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    e2e.ti.com/.../30.3024万
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我写下面提到的代码,那么延迟是什么?
    #include<MSP430-h>
    int main (void){
    WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
    P1DIR |=0x01;//将WFP 1.0 设置为输出方向
    而(1){
    volatile unsigned long i;//要防止的volatile
    //优化
    P1OUT ^= 0x01;//使用XOR切换WFP 1.0
    I = 5万;//软件延迟
    我是否--;
    while (i !=0);
    }
    }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    答案取决于主板的时钟频率和输入电压。 对于MSP430G2253,时钟频率为16MHz (不确定)。
    如果您需要1毫秒的延迟,则(1.6万/16MHz)会给您1毫秒的延迟。 即,

    I = 1.6万
    如果时钟频率为16MHz,将为您提供1ms的延迟。

    您可以确定时钟频率,并自行计算所需的延迟...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    循环后再次切换,您将知道根据WFP 1.0 状态更改延迟时间长度。 没有人能给您这个问题的明确答案,因为您需要分析生成的汇编程序代码,以进行“同步”循环,并计算循环次数,而不是根据MCLK计算延迟时间。