lunes, 27 de enero de 2014

Mutaxes. (Codigo)

Código del programa.

#include"Cpu.h"
#include"Events.h"
#include"mqx_tasks.h"
#include"mutex.h"

/* User includes (#include below this line is not maintained by Processor Expert) */
MUTEX_STRUCT mutex;    //Sedeclaraunaestructuramutex


voidTask1_task(uint32_t task_init_data)
{
int counter = 0;
//_mqx_uint result;
_mutex_init(&mutex, NULL);   //Seinicializamutexconlosvalorespredeterminados
_task_abort(_task_get_id());  //Seterminalatarea
while(1) {
    counter++;

/* Write your code here ... */
  }
}

voidTask2_task(uint32_t task_init_data)
{
int counter = 0;

while(1) {
    counter++;
    _mutex_lock(&mutex);                                  //Sebloquea el recurso
    Rojo_ClrVal( Rojo_DeviceData );
    Verde_SetVal( Verde_DeviceData );
Azul_SetVal( Azul_DeviceData );
_time_delay_ticks(100);
     _mutex_unlock(&mutex);
/* Write your code here ... */

  }
}


voidTask3_task(uint32_t task_init_data)
{
int counter = 0;

while(1) {
    counter++;
    _mutex_lock(&mutex);
Verde_ClrVal( Verde_DeviceData );
      Rojo_SetVal( Rojo_DeviceData );
Azul_SetVal( Azul_DeviceData );
      _time_delay_ticks(100);
      _mutex_unlock(&mutex);

/* Write your code here ... */

  }
}

voidTask4_task(uint32_t task_init_data)
{
int counter = 0;

while(1) {
    counter++;
     _mutex_lock(&mutex);
Azul_ClrVal( Azul_DeviceData );
     Verde_SetVal( Verde_DeviceData );
Rojo_SetVal( Rojo_DeviceData );
     _time_delay_ticks(100);
     _mutex_unlock(&mutex);
/* Write your code here ... */

  }
}

No hay comentarios:

Publicar un comentario