Taskit eli oikeammin suomeksi säikeet ovat rinnakkaisia, yhtäaikaisesti toimivia ohjelman osia. Seuraavassa on yksinkertainen esimerkki säikeiden toteutuksesta.

#pragma config(Sensor, S2,     touchSensor,         sensorTouch)
 

task TOne()
{
  while(true)
  {
    wait1Msec(300);                                 // pieni odottelu

    nxtDisplayCenteredBigTextLine(3, "TASK 1");     // näytetään että eka taski on käynnissä

    nxtDisplayClearTextLine(6);                    
    nxtDisplayClearTextLine(7);                   
  }
  return;
}

task TTwo()
{
  while(true)
  {
    wait1Msec(300);                                 // Allow for a short wait, freeing up the CPU for other tasks.

    while(SensorValue(touchSensor) == 1)            //ollaan niin kauan silmukassa kunnes kosketusanturi menee tilaan yksi
    {
      StopTask(TOne);                                     // pysäyteään eka taski

      nxtDisplayCenteredBigTextLine(6, "TASK 2");         // näytetään, että toinen taski on käytössä

        nxtDisplayClearTextLine(3);                      //putsataan rivi kolme  
        nxtDisplayClearTextLine(4);                      //putsataan rivi neljä 

        wait1Msec(100);                                    
    }
    StartTask(TOne);                               
  }
  return;
}

task main()
{
  StartTask(TOne);                             // Käynnistetään ensimmäinen säie
  StartTask(TTwo);                             // Käynnistetään toinen säie

  while(true)
  {
    wait1Msec(300);                                 // odotellaan ja annetaan aikaa muille säikeille

    nxtDisplayCenteredBigTextLine(0, "TASK M");    
  }
  return;
}
  • No labels
You must log in to comment.