#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 ... */
}
}