1
0

fin practica 2

This commit is contained in:
2025-10-27 15:41:57 +01:00
parent 62d3035291
commit 7e264d691c
59 changed files with 15298 additions and 14423 deletions

View File

@@ -21,11 +21,8 @@ typedef struct
} LED_Config;
void CreateLedTask();
void LedToggleTask(void* pArgs);
void LedAnimationTask(void* pArgs);
void ButtonTask(void* pArgs);
void LedAnimationTask1(void* pArgs);
void LedAnimationTask2(void* pArgs);
void LedAnimationTask3(void* pArgs);
#endif /* INC_LED_TASK_H_ */

View File

@@ -7,51 +7,27 @@
#include "led_task.h"
TaskHandle_t hButtonTask;
TaskHandle_t tH[3];
void CreateLedTask()
{
/* EJERCICIOS 1/2/3
LED_Config* cfg = pvPortMalloc(sizeof(LED_Config));
if (cfg != NULL)
{
cfg->led = 0;
cfg->delay = 200;
}
xTaskCreate(
LedToggleTask,
"LedToggleTask_1",
128,
(void*) cfg,
1,
NULL
);
*/
/* EJERCICIO 4
xTaskCreate(
LedAnimationTask,
"LedAnimationTask",
ButtonTask,
"ButtonTask",
128,
NULL,
1,
NULL
&hButtonTask
);
*/
/* EJERCICIO 5
* - con la misma prioridad alternan continuamente entre ellas y son animaciones
* sin sentido
* - con prioridades distintas, visualmente y con un delay un poco más alto
* podría parecer que se hacen una detrás de otra (en orden de prioridad)
*/
xTaskCreate(
LedAnimationTask1,
"LedAnimationTask1",
128,
NULL,
1,
NULL
&tH[0]
);
xTaskCreate(
@@ -59,67 +35,28 @@ void CreateLedTask()
"LedAnimationTask2",
128,
NULL,
2,
NULL
1,
&tH[1]
);
xTaskCreate(
LedAnimationTask3,
"LedAnimationTask3",
128,
NULL,
1,
&tH[2]
);
}
void LedToggleTask(void* pArgs)
{
LED_Config* cfg = (LED_Config*) pArgs;
uint8_t counter = 5;
for(;;)
{
if(cfg->led > 2)
{
cfg->led = 0;
}
while (counter > 0)
{
LED_Toggle(cfg->led);
vTaskDelay(cfg->delay);
counter--;
}
cfg->led++;
xTaskCreate(
LedToggleTask,
"LedToggleTask_New",
128,
(void*) cfg,
1,
NULL
);
vTaskDelete(NULL);
}
}
void LedAnimationTask(void* pArgs)
void ButtonTask(void* pArgs)
{
for(;;)
{
switch(ReadJoy())
{
case 0:
// stand-by
LED_Off(0);
LED_Off(1);
LED_Off(2);
break;
case 1:
animation1();
break;
case 2:
animation2();
break;
case 3:
animation3();
break;
}
vTaskDelay(50);
uint8_t key = ReadJoy();
if(key)
xTaskNotifyGive(tH[key - 1]);
vTaskDelay(100);
}
}
@@ -127,6 +64,7 @@ void LedAnimationTask1(void* pArgs)
{
for(;;)
{
ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
int i;
for(i = 0; i < 3; i++)
{
@@ -147,6 +85,7 @@ void LedAnimationTask2(void* pArgs)
{
for(;;)
{
ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
int i, j;
for(j = 0; j < 5; j++)
{
@@ -167,6 +106,7 @@ void LedAnimationTask3(void* pArgs)
{
for(;;)
{
ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
int i;
for(i = 0; i < 3; i++)
{
@@ -180,3 +120,4 @@ void LedAnimationTask3(void* pArgs)
}
}
}