saulotmalo escribió:esto que tiene que ver aquí?
Pues mucho, porque lo que tu esta pidiendo (que se llame de forma regular a una funcion) tiene tres formas de hacerse:
1) Crear un handler a una interrupcion que se llame frecuentemente y con mucha regularidad (o sea, desde un timer, que seguro que se puede en PSP, aunque yo no conozco como va el tema de los timers ni nada del hardware, que por cierto, me vendría bien saber)
2) La segunda es igual que la primera, excepto que se utiliza una llamada que active un hilo desde el handler de interrupcion del timer. Esto sirve cuando nuestra funcion necesita cumplir ciertas reglas que no le permiten ser llamada desd un handler de interrupcion directamente.
3) Por ultimo tienes la posibilidad de hacerlo tal y como te lo recomendaban al principio, pero creando un hilo y encerrando la funcion de espera y tu funcion a llamar con un while eterno.
La mas precisa es la opcion 1, seguida de la 2 y luego de la tres.
La opcion 1, es buena si lo que quieres es gobernar una serie de contadores por software o actualizar el desplazamiento de un objeto de forma regular y tu funcion es muy rapida y sabes que no va a demorarse mucho, afectando al uso de otras interrupciones
La opcion 2 lo que haria es despertar un hilo que tendria que tener una alta prioridad para que se despertase lo mas rapidamente posible, sin sufrir demoras por parte de otros hilos que tuvieras en ejecucion.
En la opcion 3 tambien seria muy recomendable que la prioridad del hilo fuese muy alta, puesto que el hilo esta suspendido durante la ejecucion de la funcion de espera y lo que queremos es que cuando pase el tiempo, el hilo despierte en cuanto sea posible, interrumpiendo la ejecucion de otro hilo si es necesario.
Si tu funcion combina una seccion de codigo que sea critica con el tiempo, deberia mantene la prioridad mas alta durante ese tramo, pero si luego en otra parte de la funcion no importa tanto la regularidad del tiempo y quieres permitir "oxigenar" otros hilos (tal vez tengas un hilo que está reproduciendo musica y quieras evitar que se produzca un silencio) lo ideal sería bajar la prioridad del hilo en ese punto y volver a subir la prioridad justo antes de llamar a la funcion de espera.
De esta forma, consigues que en un sistema multihilo se mantenga esa temporizacion que necesitas, sin que eso trabaje en contra de otros hilos que tengas en ejecucion (sonido, main, etc) y tdo va a depender mas de la precision que tengan los temporizadores de la PSP (seguramente, tenga una desviacion decimal, pero eso es inevitable en todos los sistemas y siempre se puede corregir teniendo en cuenta la desviacion
)
PD: A ver si me pongo a mirar un poco la PSP, que me apetece hacer algunas cosillas, aunque estoy tan despistado con esta maquina, que no se donde encontrar informacion buena sobre su hardware