Las tareas pueden esperar a que una
combinación de eventos de bits sea puesta en 1. Una tarea puede poner en 1 o 0
una combinación de eventos de bits. Los eventos también pueden ser utilizados
para sincronizar una tarea con otra.
El componente llamado evento consiste en
grupos de eventos, los cuales son agrupaciones de los eventos de bits.
- Las tareas pueden esperar por todos o cualquier evento de bits que se ponga en 1.
- Los grupos de eventos pueden ser identificados por nombre o por index.
- Cualquier tarea puede esperar por eventos de bits en cualquier grupo de eventos.
- Cuando el evento de bits esta puesto en 1, MQX pone todas las tareas en espera, las cuales esperaran por una condición conocida en la fila.
- Si un grupo de eventos tiene eventos de bits de autoclearing, MQX limpia los bits de evento tan pronto como estos fueron puestos en 1.
Para poder
utilizar los eventos en MQX lightweight, es necesario habilitarlo en “component inspector” además de agregar
el archivo de cabecera “lwevents.h”.
Creación de Eventos.
LWEVENT_STRUCT lwevent;
//Crea una variable del tipo evento
·
Para crear
un grupo de eventos:
_mqx_uint _lwevent_create(lwevent_ptr, flags)
·
Para colocar
especificado bit de evento en un grupo de eventos:
_mqx_uint _lwevent_set(lwevent_ptr, mask)
·
Para limpiar
especificado bit de evento en un grupo de eventos:
_mqx_uint _lwevent_clear(lwevent_ptr, mask)
Ejemplo.
El
programa consiste en 4 tareas. A continuación se muestra la tabla de
características.
Name
|
Stack Size
|
Priority
|
MQX_AUTO_START_TASK
|
|
Task1
|
Inicio
|
512
|
8
|
Enable
|
Task2
|
Rojo
|
512
|
9
|
Enable
|
Task3
|
Verde
|
512
|
9
|
Enable
|
Task4
|
Azul
|
512
|
9
|
Enable
|
Tabla 4. Características de las tareas.
El
programa inicia con la creación del evento dentro del código de la tarea Inicio, que es la que se ejecuta primero
por tener la más alta prioridad. Una vez creado el evento, la tarea se
bloquea y el administrador ejecuta la siguiente tarea.
Ver Codigo
Ver Codigo
No hay comentarios:
Publicar un comentario