2016-07-10 3 views
-3

Arduinoメガで、特定のコードを正確な時間に実行する必要があるコードを作成しています。私はこれを計算する方法を理解しようとしています。メガが1つの計算をして、それをあるコードブロックの計算数で掛けるのにどれくらいの時間がかかるかを調べることによって、これを計算する方法です。これはこの問題に近づく正しい方法ですか?どのように多くの計算が行われているかをカウントするにはどうすればよいですか?Arduinoメガを操作する時間はどのように測定するのですか?

+0

このような長いループのCPUタイミングを使用する非常に悪い方法です。タイマーを使用してください。 – Olaf

+0

私は主に、自分のループが特定の長さであることを確認する方法を理解しようとしています。私はちょうどタイマーを使用し、私がそれを好きになるまでコードをつぶし続けますか?それとももっと正確な方法がありますか? – Samar

+0

あなたは何を研究しましたか?なぜあなたはウェブのネットワーク上で見つけることができますか?あなたは自分で**どんな**研究をしましたか?あなたの実際の問題は何ですか? - 広すぎる、これはコンサルティングサイトではありません。 – Olaf

答えて

1

タイマーを実装する最も簡単な方法の1つは、このような何かごloop()機能でmillis()を使用して、あなたのコードが実行された最後の時間に対してそれを比較することである:これは正確でないことを

long loopTime = 0; 
loop() 
{ 
    if (millis() - loopTime >= 8) 
    { 
     // Do the stuff here that you want to happen every 8ms 
     // ... 
     // 

     // Keep track of the last time this code ran, so we'll run it 
     // again 8 ms from now 
     loopTime = millis() 
    } 

    // Do other stuff here 
} 

は注意をmillis()関数が正確なFigureを保証しないためです。絶対精度が必要な場合は、8msごとに割り込みを生成するために何らかの外部ハードウェアタイマーを使用する必要があります。割り込みプログラミングはもう少し複雑になりますが、上記のタイミングループのテクニックは、絶対精度を必要としないほとんどの場合に有効です。

関連する問題