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) {
// La tarea responde al semáforo aquí
// Realiza el trabajo necesario
printf("- ");
printf("| ");
}
}
}
@ -330,6 +330,10 @@ void app_main() {
// Inicializa el semáforo
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
spi_handle = malloc(sizeof(spi_device_handle_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
// ...
// 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
// vTaskStartScheduler();
while(1){
vTaskDelay(1000);
// Espera al semáforo
if (xSemaphoreTake(xSemaphore, portMAX_DELAY) == pdTRUE) {
// La tarea responde al semáforo aquí
// Realiza el trabajo necesario
printf("- ");
}
// if (xSemaphoreTake(xSemaphore, portMAX_DELAY) == pdTRUE) {
// // La tarea responde al semáforo aquí
// // Realiza el trabajo necesario
// printf("- ");
// }
}
}

Loading…
Cancel
Save