Autor Tema: quitarle el procesador a la fuersa a una funcion  (Leído 975 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado RodrigoAndres

  • PIC16
  • ***
  • Mensajes: 171
quitarle el procesador a la fuersa a una funcion
« en: 23 de Enero de 2016, 10:32:34 »
hola a todos, lo que sucede es que se trata de varias funciones que debo ejecutar cada cierto tiempo, el problema es ke no se cuanto se puede tardar cada una y podrian apropiarse del procesador por demasado tiempo sin dejarle oportunidad a las otras funciones de ejecutarse.

entonces lo que queria haser era administrar todo desde una interrupcion que va contando el tiempo de cada funcion y si el tiempo se exedio, entonces que guarde el estado de la cpu y los registros en variables temporales y carge los de otra funcion y entre en esa funcion en la parte de codigo donde se quedo.

osea lo que quiero haser es algo parecido a un RTOS (real-time operating system) pero que no tenga tanta latencia y que sea para pics, en otra palabra que sea mucho mas presiso en los tiempos de ejecutar cada funcion

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:quitarle el procesador a la fuersa a una funcion
« Respuesta #1 en: 23 de Enero de 2016, 12:06:03 »
Lo que quieres no es que se parezca a un RTOS es que es un RTOS, el cual es un sistema operativo en tiempo real, en otras palabras, no tiene latencia (si que tiene como cualquier sistema secuencial pero despreciable para la mayoría de las tareas), si tuviera latencia seria un sistema operativo normal como linux o son dos

Hay muchos sistemas operativos en tiempo real para microcontroladores, algunos mas completos y otros mas livianos.

Si lo que quieres es hacerlo tu, no te va a resultar fácil necesitas de conocimientos de programación avanzados, y tendrás que recurrir al ensamblador para, ejecutar los saltos de programa y usar la pila para guardar los registros, ademas de poner etiquetas para saber donde te has quedado.

Puedes empezar haciendo el scheduler que es lo mas "sencillo".

Por otra parte, si programas de manera correcta, sin usar while, ni delay, ni nada que genere retrasos en el ciclo del programa, no tendrás latencia en tu programa, y no necesitaras ningún rtos o te servirá solo con el scheduler.

Aquí tienes uno que hice yo hace tiempo, te puede servir para hacerte una idea de como hacer el tuyo o adaptar este a tu gusto.

Un saludo.

Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw


 

anything