fin practica 2
This commit is contained in:
123
P2_SETR2/ejercicios/parte2-notify.txt
Normal file
123
P2_SETR2/ejercicios/parte2-notify.txt
Normal file
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* led_task.c
|
||||
*
|
||||
* Created on: Oct 6, 2025
|
||||
* Author: jomaa
|
||||
*/
|
||||
|
||||
#include "led_task.h"
|
||||
|
||||
TaskHandle_t hButtonTask;
|
||||
TaskHandle_t tH[3];
|
||||
|
||||
void CreateLedTask()
|
||||
{
|
||||
xTaskCreate(
|
||||
ButtonTask,
|
||||
"ButtonTask",
|
||||
128,
|
||||
NULL,
|
||||
1,
|
||||
&hButtonTask
|
||||
);
|
||||
|
||||
xTaskCreate(
|
||||
LedAnimationTask1,
|
||||
"LedAnimationTask1",
|
||||
128,
|
||||
NULL,
|
||||
1,
|
||||
&tH[0]
|
||||
);
|
||||
|
||||
xTaskCreate(
|
||||
LedAnimationTask2,
|
||||
"LedAnimationTask2",
|
||||
128,
|
||||
NULL,
|
||||
1,
|
||||
&tH[1]
|
||||
);
|
||||
|
||||
xTaskCreate(
|
||||
LedAnimationTask3,
|
||||
"LedAnimationTask3",
|
||||
128,
|
||||
NULL,
|
||||
1,
|
||||
&tH[2]
|
||||
);
|
||||
}
|
||||
|
||||
void ButtonTask(void* pArgs)
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
uint8_t key = ReadJoy();
|
||||
if(key)
|
||||
xTaskNotifyGive(tH[key - 1]);
|
||||
vTaskDelay(100);
|
||||
}
|
||||
}
|
||||
|
||||
void LedAnimationTask1(void* pArgs)
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
|
||||
int i;
|
||||
for(i = 0; i < 3; i++)
|
||||
{
|
||||
LED_On(i);
|
||||
vTaskDelay(150);
|
||||
LED_Off(i);
|
||||
}
|
||||
for(i = 1; i > 0; i--)
|
||||
{
|
||||
LED_On(i);
|
||||
vTaskDelay(150);
|
||||
LED_Off(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LedAnimationTask2(void* pArgs)
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
|
||||
int i, j;
|
||||
for(j = 0; j < 5; j++)
|
||||
{
|
||||
for(i = 0; i < 3; i++)
|
||||
LED_On(i);
|
||||
|
||||
vTaskDelay(100);
|
||||
|
||||
for(i = 0; i < 3; i++)
|
||||
LED_Off(i);
|
||||
|
||||
vTaskDelay(100);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LedAnimationTask3(void* pArgs)
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
|
||||
int i;
|
||||
for(i = 0; i < 3; i++)
|
||||
{
|
||||
LED_On(i);
|
||||
vTaskDelay(150);
|
||||
}
|
||||
for(i = 2; i >= 0; i--)
|
||||
{
|
||||
LED_Off(i);
|
||||
vTaskDelay(150);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user