[PSP] Ayuda alternativa a time.h

Hola a todos mi cuestion es la siguiente:

Estaba yo todo feliz y contento programando una aplicacion cutre/basica mas que nada para ir aprendiendo y para el menu claro como todos sabeis en una pulsacion registra 6 o asi y usaba lo que dijo killer-x en otro hilo que es esta funcion:
sceKernelDelayThread(200000);
luego mas alante en el hilo se hablo de hacerlo de la manera que mirase cuanto hace que se pulso el boton y si por ejemplo es mas de 1 segundo que deje ejecutar la accion pues bien Uso la libreria y lo mas pequeño que me da son Segundos y logicamente que solo deje pulsar al pasar 1 segundo es un engorro y era por si sabias otra libreria que me dea decimas de segundo.

Aunque viendo la libreria no se si ella misma da la solucion , intullo que es algo de esto
typedef struct SceCtrlData {
   /** The current read frame. */
   unsigned int    TimeStamp;
   /** Bit mask containing zero or more of ::PspCtrlButtons. */
   unsigned int    Buttons;
   /** Analogue stick, X axis. */
   unsigned char    Lx;
   /** Analogue stick, Y axis. */
   unsigned char    Ly;
   /** Reserved. */
   unsigned char    Rsrv[6];
} SceCtrlData;


o de esto:
/**
* Set the controller cycle setting.
*
* @param cycle - Cycle.  Normally set to 0.
*
* @returns The previous cycle setting.
*/
int sceCtrlSetSamplingCycle(int cycle);


aunque claro aunque sea no se como se setea en el primer caso ( aver si averiguo algo )

y en el segundo caso probe con 1 ( aunque ahora se me ocurre si ira en segundos o milisegundo u otra voy probar y os digo )



y Ya puesto con pspDebugScreenSetXY

si pongo en el codigo pspDebugScreenSetXY(30,30);
me sale asi de descolocado no se por que:
Imagen
link imagen -> http://img167.imageshack.us/img167/513/locategp7.th.png
Gracias de Antemano
Para obtener más resolución con respecto al tiempo actual, la librería que deberías incluír es psprtc.h. En ella está definida la siguiente estructura:

typedef struct {
u16 year;
u16 month;
u16 day;
u16 hour;
u16 minutes;
u16 seconds;
u32 microseconds;
} pspTime;

Declarando una variable de esta estructura puedes obtener diferencias de tiempo extremandamente pequeñas, como puedes ver por los miembros de la estructura. Mediante esa variable y la funcion sceRtcGetCurrentClockLocalTime podrás obtener hasta el microsegundo actual. El código para hacerlo sería algo así:

"pspTime clock;

sceRtcGetCurrentClockLocalTime(&clock);"

Saludos.
Gusvo Gracias por responder pero no doy logrado que me devuelva un valor solo me devuelve 0 la verdad esque si veo el cacho de codigo ese de typedef no se como tendria que poner/hacer para lograr hacer algo
si alguien podria explicarlo por favor ¿? o responder a alguna de mis preguntas en el post #1


EDIT: Vale lo he solucionado facilmente con sceCtrlSetSamplingCycle(200000); supongo que sera el valor en microsegundos Algo sobre el posicionamiento del texto ¿?
kYp escribió:Ya puesto con pspDebugScreenSetXY
si pongo en el codigo pspDebugScreenSetXY(30,30);
me sale asi de descolocado no se por que:

Tienes q tener en cuenta q se mide en celdas d caracter, y no en pixeles, es decir q si pones 1, es equivalente a unos 8 pixeles
Salu2
typedef strutc:
Esto es una estructura de datos.
sceRtcGetCurrentClockLocalTime(); en el parametro pide una estructura como te ha posteado Gusvo.

Tu creas la estructura y la definimos como un tipo de datos psptime, entonces creas la variable clock como ese tipo y pasas la referencia como parametro. Te rellena el struct y a partir de aqui tu puedes acceder a clock.microseconds y alli tendras los microsegundos osea
pspTime clock;
sceRtcGetCurrentClockLocalTime(&clock);
...
...
pspTime clock2;
sceRtcGetCurrentClockLocalTime(&clock2);
if (clock2.microseconds > clock.microseconds+2000){
..........
El codigo es una mierda, lo se, pero esto te ilustra de como lo puedes usar.
4 respuestas