3

Arduinoにはdelay(ms)、プログラムを一定時間一時停止する機能があります。ミリ秒単位で非常に正確です。

AT89C5131 マイクロコントローラーの Keil uVision で使用される C の遅延関数があります。

void delay( unsigned long duration)
{
    while ( ( duration -- )!= 0);
}

これは多少の遅延作業を行いますが、長い値は Arduino のように正確ではありません。

delay()Arduinoの関数のように機能する関数を作成する方法はありますか?

水晶は 24Mhz で動作しています。

4

3 に答える 3

1

忙しい待機をしたい場合は、Keil で次のようにします。

#pragma O0
void wait(volatile uint32_t cnt) {
    while(cnt--)
        _nop_();
}

http://www.keil.com/support/docs/606.htm

于 2014-02-04T16:19:44.600 に答える