La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tareas NQC puede tener hasta 10 tareas, una de las cuales siempre será main. Las tareas se ejecutan usando el comando start. Las tareas corren simultaneamente.

Presentaciones similares


Presentación del tema: "Tareas NQC puede tener hasta 10 tareas, una de las cuales siempre será main. Las tareas se ejecutan usando el comando start. Las tareas corren simultaneamente."— Transcripción de la presentación:

1 Tareas NQC puede tener hasta 10 tareas, una de las cuales siempre será main. Las tareas se ejecutan usando el comando start. Las tareas corren simultaneamente (tareas múltiples). Una tarea puede detener a otra usando el comando stop. Una tarea detenida puede volver a partir pero, partirá desde el punto de partida y no desde el punto en el cual se detuvo.

2 El Programa a Continuación: Se moverá en un cuadrado pero,si toca un obstáculo reaccionará a el. Es dificil hacer esto en una tarea pues el robot debe hacer dos cosas al mismo tiempo: Moverse (encendiendo y apagando motores al mismo tiempo) Mirar los sensores y reaccionar a ellos. Es mejor usar dos tareas: Una tarea que mueve al robot en un cuadrado. Una tarea que reacciona ante los sensores.

3 task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); start check_sensors; start move_square; } task move_square() { while (true) { OnFwd(OUT_A+OUT_C); Wait(100); OnRev(OUT_C); Wait(85); } task check_sensors() { while (true) { if (SENSOR_1 == 1) { stop move_square; OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A); Wait(85); start move_square; }

4 task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); start check_sensors; start move_square; } task move_square() { while (true) { OnFwd(OUT_A+OUT_C); Wait(100); OnRev(OUT_C); Wait(85); } task check_sensors() { while (true) { if (SENSOR_1 == 1) { stop move_square; OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A); Wait(85); start move_square; } La tarea main elige el tipo de sensor y hace partir a ambas tareas. Posteriormente la tarea main termina.

5 task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); start check_sensors; start move_square; } task move_square() { while (true) { OnFwd(OUT_A+OUT_C); Wait(100); OnRev(OUT_C); Wait(85); } task check_sensors() { while (true) { if (SENSOR_1 == 1) { stop move_square; OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A); Wait(85); start move_square; } La tarea move_square mueve al robot para siempre en cuadrados.

6 task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); start check_sensors; start move_square; } task move_square() { while (true) { OnFwd(OUT_A+OUT_C); Wait(100); OnRev(OUT_C); Wait(85); } task check_sensors() { while (true) { if (SENSOR_1 == 1) { stop move_square; OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A); Wait(85); start move_square; } La tarea check_sensors espera hasta que el sensor es presionado. Si ello ocurre: Detiene a move_square Retrocede al robot, y luego gira Vuelve a hacer partir a la tarea move_square

7 Es importante considerar que: Las tareas que se ha hecho partir, corren al mismo tiempo. Esto podría llevar a resultados inesperados.


Descargar ppt "Tareas NQC puede tener hasta 10 tareas, una de las cuales siempre será main. Las tareas se ejecutan usando el comando start. Las tareas corren simultaneamente."

Presentaciones similares


Anuncios Google