-2

このコードは、タイマーによって提供される情報を評価するために使用されます。タイミングが有効なときにアクティブになり、特定の基準が発生したときにタイマーをリセットしたい。そして、コードでこれらのパラメーターを継続的にチェックする必要があります。x、a、および b は絶えず変化します。

Stopwatch sw = new Stopwatch(); //sets sw as the stopwatch variable
sw.Start(); //starts stopwatch
for (int i = 0; ; i++) //counter
{
     if (i % 1000000 == 0) //sets counter limit
     {
          sw.Stop();  //stops stopwatch
          if (sw.ElapsedMilliseconds >= 3000)  //when the elapsed time is > 3 secs
          {
              comPort.WriteLine("1"); //sends a 1 to an arduino 
              break; //breaks for loop
          }
          else if (sw.ElapsedMilliseconds < 3000) //when the elapsed time is < 3 secs
          {
              if ((Math.Abs(x-a) < 150) && (Math.Abs(x-b) < 150)) //criteria to start
              {
                  sw.Start(); //continues stopwatch
              }
              else if ((Math.Abs(x-a) > 150) && (Math.Abs(x-b) > 150)) //criteria reset
              {
                  sw.Reset(); //resets stopwatch
                  break; //breaks for loop
              }
          }
     }
}
4

2 に答える 2

1

私が見る明らかな問題の 1 つは、基本的にループ全体でストップウォッチが停止していることです。適切な時間を守るようなことは何もしません。

于 2013-04-14T16:42:57.483 に答える