Hola comunidad.
Estoy aprendiendo un poco de freeRTOs con el PIC32 y MPLAB Harmony.
Estoy haciendo un delay simple para encender un led así en un tareaCódigo: C++
const TickType_t delay500ms = 500 / portTICK_PERIOD_MS; for( ;; ) { GPIO_RE3_Toggle() ; vTaskDelay( delay500ms ); }
Al principio funcionaba muy bien, pero ahora que he agregado nuevos procesos, toma más tiempo el encendido y pagado del led.
Puede ser un problema del oscilador?
Si, funciona. gracias, :-/
pero que tiene de especial vTaskDelayUntil??????
Si, funciona. gracias, :-/
pero que tiene de especial vTaskDelayUntil??????
Hola. También soy novato en freeRTOs, apenas tengo 3 meses de estar usándolo.
Yo entiendo así.
vTaskDelay le dice al scheduler vuelve a ejecutarme en 500ms. En ese instante el scheduler ejecuta otra tarea de igual prioridad o superior, pero mientras que existan tareas de mayor prioridad, tu tarea de menor prioridad tendrá que esperar el tiempo que deba. Y puede ser más de 500ms.
Mientras que vTaskDelayUnti es mucho más precisa, debe tener algún inconveniente o defecto, pero hasta ahora trabaja muy bien en un proyecto que estoy haciendo.