Anda di halaman 1dari 13

Leccin 5:

Soluciones de
Programacin conTareas
Mltiples y Relojes
Ejercicio 1
Escriba un programa con 2 tareas. La primera tarea
vigila un sensor de contacto para siempre y ejecuta
un sonido si el sensor es presionado.

La segunda tarea vigila a un segundo sensor de


contacto para siempre. Si este sensor es presionado,
el motor A avanza por 1 segundo y despus se
apaga.
Ejercicio 1: Solucin
Necesita separar Use 2 pares Salto/Tierra
de distinto color para No olvide la luz roja
en dos tareas
las 2 distintas tareas. al final de cada tarea.

Recuerde especificar puertos distintos


para los sensores de contacto.
Ejercicio 2
Escriba un programa con 3 tareas.

La primera tarea emite 4 sonidos.

La segunda hace avanzar al motor A por 2 segundos y


luego lo apaga.

La tercera tarea enciende el motor C en reversa por 5


segundos y despus lo apaga.
Ejercicio 2: Solucin
y volver a Si usa un lazo,
El secreto es
ahorra un cono.
separar las tareas... separarlas.

Use modificadores de constante numrica


para especificar los 5 segundos.
Ejercicio 3: Solucin
Escriba un programa que emite un sonido por
5 segundos exactos.
Esto es similar al Problema de la Bifurcacin Rotacional.

Recuerde poner El tiempo se expresa


a cero el reloj. en dcimas de segundo.
Leccin 5:

Ideas para Solucionar Problemas


con Tareas Mltiples y Relojes
Problema 5a
Cul es el error con este programa?
Solucin 5a
Recuerde: Slo las bifurcaciones necesitan
fusin. La separacin de tareas slo requiere
luces rojas al final de cada tarea.
Problema 5b
Cul es el problema con este programa?

Indicacin:
Qu es lo que toda
bifurcacin necesita?
Solucin 5b
Desafortunadamente, si usa una separacin de tarea
despus de una bifurcacin, NO HAY FORMA de
volver a fusionar la bifurcacin; luego, no lo haga.
Problema 5c
Este programa debera emitir un sonido por
exactamente 5 segundos, pero suena para siempre!
Cul es el error?

Indicacin: Qu es lo que hace inmediatamente


despus de caer en la tierra roja?
Solucin 5c
El Problema es, que el reloj es puesto a cero
en cada nuevo ciclo. En este programa, el
reloj se debe poner a cero slo al inicio del
programa.

Anda mungkin juga menyukai