2011-11-10 10 views
0

私はIOIOのAndroid開発ボードを使用しています。私は2つのピンをコントロールしようとしており、インターバル時間にオンとオフを切り替えます。これまでのところ、それはうまく接続し、リードとピンはオン/オフしていますが、正しいタイミングではオンではありません。私は問題がsleep()関数であると仮定します。 助けや指導をいただければ幸いです。スリープの使用にもかかわらずタイミングが間違っています

    class IOIOThread extends Thread { 
     private IOIO ioio_; 
     private boolean abort_ = false; 


     @Override 
     public void run() { 
      super.run(); 
      while (true) { 
       synchronized (this) { 
        if (abort_) { 
         break; 
        } 
        ioio_ = IOIOFactory.create(); 
       } 
       try { 
        setText(R.string.wait_ioio); 
        ioio_.waitForConnect(); 
        setText(R.string.ioio_connected); 

        while (true) { 

         while((button_.isChecked())==true){ 

          DigitalOutput led = ioio_.openDigitalOutput(0, false);; 
          DigitalOutput S1 = ioio_.openDigitalOutput(35, false); 
          DigitalOutput S2 = ioio_.openDigitalOutput(36, false); 
          DigitalOutput S3 = ioio_.openDigitalOutput(37, false); 
          DigitalOutput S4 = ioio_.openDigitalOutput(38, false); 

          holdTime=30000; 

          for (currentTime=0; currentTime<=holdTime;) 
          { 
           led.write(true); 
           S1.write(true); 
           S2.write(true); 
           sleep(4000); 
           led.write(false); 
           S1.write(false); 
           S2.write(false); 
           sleep(2000); 
           led.write(true); 
           S3.write(true); 
           S4.write(true); 
           sleep(4000); 
           led.write(false); 
           S3.write(false); 
           S4.write(false); 
           sleep(4000); 
           currentTime = currentTime+14000; 

         }}}} 

       catch (ConnectionLostException e) { 
       } catch (Exception e) { 
        Log.e("HelloIOIOPower", "Unexpected exception caught", e); 
        ioio_.disconnect(); 
        break; 
       } finally { 
        try { 
         ioio_.waitForDisconnect(); 
        } catch (InterruptedException e) { 
        } 
       } 
      } 
     } 
+0

だから何が問題なのですか?あなたはどんなタイミングを期待しましたか、代わりに何を見ていますか? –

+0

あなたは何をしようとしているのか、その代わりに何をしているのか記述できますか? – corsiKa

答えて

1

Sleep()はリアルタイムではありません。少なくとも、指定されたミリ秒単位でスレッドを保留にするだけです。その後、スケジューリングが可能になり、いつか実行されます。

関連する問題