tick = 1/(8Mhz/4)*(256-240)*128 = 1ms~main() {
while(1) {
read_inputs();
user_program();
write_outputs();
communication();
}
}
user_program() {
if ((input1 && input2) || input3) { output1 = 1; }
if (input4) { output1 = 0; }
}
/* esta función se llama por interrupciones 10 veces por segundo */
timers() {
int i;
for(i=0; i<20; i++) {
if (timer[i]>0) timer[i]--;
}
}
main() {
while(1) {
if (pulsador) timer[1] = 20; // timer 1 temporiza 2 segudos
if (timer[1] == 0) output1 = 1;
}
}
Ahora, como hacer un programa que siempre este haciendo cosas utiles?? Evitando usar delay. Para controles de tiempo siempre se pueden usar los timers
La ventaja de programarlo "a mano" sin rtos es la velocidad. Puedes conseguir tiempos de latencia bajísimos al precio de muchas horas dedicadas a programar y depurar. Y necesitas tener las ideas muy claras para no comenter errores.
Hola quisiera saber cuantas tareas puede soportar el freertos en un pic18f4526, estoy haciendo un proyecto y debo implementar 16 secuencias paralelas, gracias.Este tema es para el RTOS OSA exclusivamente por favor.