void doTest(void)
{
  rtems_status_code sc;
  int               pass, i;

  sc = rtems_semaphore_create(
    rtems_build_name('S', 'E', 'M', 'F'),
    0,
    TEST_SEMAPHORE_ATTRIBUTES,
    0,
    &semaphore);
  directive_failed( sc, "semaphore create" );

  for (i = 0 ; i < NTASK ; i++)
    flags[i] = 0;

  for (i = 0 ; i < NTASK ; i++)
    starttask(i);

  for (pass = 1 ; pass < 10 ; pass++) {
    rtems_task_wake_after(1);
    for (i = 0 ; i < NTASK ; i++) {
      if (flags[i] != pass)
        printf("flags[%d] = %d -- expected %d\n", i, flags[i], pass);
    }
    sc = rtems_semaphore_flush(semaphore);
    directive_failed( sc, "semaphore flush" );
  }

  printf("Flushed all waiting tasks\n" );
}
Beispiel #2
0
void Scoremiddlegoal()
{  waitForButton();
  starttask(CollectD);
  {
    drive_Enc(63,7,4);
  }
  stopdrivemotors();
  StopTask(CollectD);
  StartTask(medgoal);
  {

    stopTime(1.75);//wait for arm
    drive_Enc(63,8,5);//drive foward
  }
  StopTask(medgoal);
  spit(0.75);
  drive_Enc(-63,4,2);
  spit(0.75);
  StartTask(armDown);
  {
    drive_Enc(-63,15,5);
  }
  StopTask(armDown);
  waitForButton();
  StartTask(CollectD);
  {
    drive_Enc(70,15,5);
  }
  StopTask(CollectD);

}
Beispiel #3
0
static pid_t
setup_dev (vfsmsg_t *msg) {
    pid_t pid;
    pid = createtask(TASK_PRIO_HIGH, PAGE_INVALID);
    allocatestack(pid, DEFAULT_STACK_SIZE);
    setuptask(pid, msg->mkdev.ask.driver, msg->mkdev.ask.args, NULL);
    starttask(pid);
    return pid;
}
Beispiel #4
0
rtems_task Init (rtems_task_argument ignored)
{
  puts("*** START OF TEST 28 ***" );

  test_errors();

  test_multiple_taskvars();

  test_delete_as_side_effect();

  test_delete_from_other_task();

  starttask (1);
  starttask (2);
  starttask (3);

  test_out_of_memory();

  rtems_task_suspend (RTEMS_SELF);
}
Beispiel #5
0
task main()
{
 	initializeRobot();
 	initialize_gyro();
	starttask(process_gyro);


	while(true)
	{
		nxtDisplayCenteredTextLine(3, "A gyro=%d", gyro.total/1000.0);
	}
	//move(1, 22.5);
	//wait10Msec(500);
	//move(-1,22.5);

 //move forward, turn 45 degrees, move forward
 //move(1, 24);
 //wait10Msec(50);
 //move(1, 0);
 //turngyro_left(45.0, 50);
 //move(1, 33.941);

}