NXTのプログラムでは複数のタスクを定義することができます。
普通は main( ) というタスクが一つですが・・・それとは別に複数のタスクを同時に動かすことができます。
といっても、入出力は限られているんで、複数のタスクを同時に動かす場合には、競合が起きないようにするテクニックが必要になります。
M&Yは、ROBOLAB時代でも、坂道センサーを独立したタスクが監視していて、坂道に入ったか?、2階に着いたか?を検知していました。
(main以外の)タスクを動かすときには、
StartTask( task );
で、別のタスクを動かすことができます・・・
でも、動かしたタスクを終らせたい場合が・・・わかりません。
何もしないと・・・mainタスクが終っても、別タスクが動いたままだと、プログラムが終了しません。 mainタスクが終了するときに、別タスクも終了させたい場合はどうしましょう。
で、いろいろ調べてみると・・・StopTask( task ) という命令があるハズなのですが・・・何故かエラーになってしまいます。
しょうがないので・・・StopAllTasks( ) を使用しています。