Browse Source

funciona en otra tarea, sin agregar el yield

master
lucascukla 2 years ago
parent
commit
c2a683370b
  1. 21
      main/main.c

21
main/main.c

@ -321,7 +321,7 @@ void base_task(void *pvParameters) {
if (xSemaphoreTake(xSemaphore, portMAX_DELAY) == pdTRUE) { if (xSemaphoreTake(xSemaphore, portMAX_DELAY) == pdTRUE) {
// La tarea responde al semáforo aquí // La tarea responde al semáforo aquí
// Realiza el trabajo necesario // Realiza el trabajo necesario
printf("- "); printf("| ");
} }
} }
} }
@ -330,6 +330,10 @@ void app_main() {
// Inicializa el semáforo // Inicializa el semáforo
xSemaphore = xSemaphoreCreateBinary(); xSemaphore = xSemaphoreCreateBinary();
// Crea la tarea de base
// xTaskCreate(base_task, "base_task", 2048, NULL, 15, NULL);
xTaskCreatePinnedToCore(base_task, "base_task", 2048, NULL, 15, NULL, 0);
// configuracion SPI // configuracion SPI
spi_handle = malloc(sizeof(spi_device_handle_t)); spi_handle = malloc(sizeof(spi_device_handle_t));
bus_cfg_SPI = malloc(sizeof(spi_bus_config_t)); bus_cfg_SPI = malloc(sizeof(spi_bus_config_t));
@ -367,19 +371,18 @@ void app_main() {
// Configura la rutina de interrupción para activar el semáforo // Configura la rutina de interrupción para activar el semáforo
// ... // ...
// Crea la tarea de base
// xTaskCreate(base_task, "base_task", 2048, NULL, 15, NULL);
// xTaskCreatePinnedToCore(base_task, "base_task", 2048, NULL, 15, NULL, 0);
// Inicia el sistema operativo en tiempo real // Inicia el sistema operativo en tiempo real
// vTaskStartScheduler(); // vTaskStartScheduler();
while(1){ while(1){
vTaskDelay(1000);
// Espera al semáforo // Espera al semáforo
if (xSemaphoreTake(xSemaphore, portMAX_DELAY) == pdTRUE) { // if (xSemaphoreTake(xSemaphore, portMAX_DELAY) == pdTRUE) {
// La tarea responde al semáforo aquí // // La tarea responde al semáforo aquí
// Realiza el trabajo necesario // // Realiza el trabajo necesario
printf("- "); // printf("- ");
} // }
} }
} }

Loading…
Cancel
Save