Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Riki_89D en 23 Octubre 2011, 19:43 pm



Título: Crear un timer desde 0
Publicado por: Riki_89D en 23 Octubre 2011, 19:43 pm
Hola que tal? :) espero que esten genial!

veran,estoy interesado encrear mi propio Timer sin Usar API ni librerias,es decir,desde 0,solo quiero hacerlo pue spara aprender mas y saber si soy capaz de hacerlo por mi solo,puede sonar muy tonto,pero es como un reto para mi,no si me entendeis :S o tambien le pasa a alguien :P,me podrias dar solo alguna idea de como hacerlo? abria que usar ASM? o bastaria y sobraria con C?


muchisimas gracias :)


Título: Re: Crear un timer desde 0
Publicado por: naderST en 24 Octubre 2011, 00:03 am
Puedes hacer un bucle infinito y con la hora del sistema comprobar el intervalo.


Título: Re: Crear un timer desde 0
Publicado por: Riki_89D en 24 Octubre 2011, 00:53 am
Claro,ahora que me fijo por narices tengo que usar librerias no?¿.....para saber la hora necesito time.h....pensava que podia hacer un timer sin usar nada....pero por lo que he invesitgado solo seria posible con ASM.....cierto?¿



gracias


Título: Re: Crear un timer desde 0
Publicado por: CeroX901 en 24 Octubre 2011, 01:58 am
Con la hora del sistema no es exacto, fíjate que cuando se usa Sleep(...), usas milisegundos, yo lo haría con QueryPerformanceCounter(...), esta función te da un intervalo de alta resolución, este intervalo va aumentando internamente desde el propio hardware (corregidme si me equivoco), cuando vuelves a llamar la funcion te da un número mayor, lo que haces es con un if esperar ese numero de intervalo para terminar el bucle "infinito"... Lo uso bastante para medir los tiempos de un algoritmo, solo sería adaptarlo.

Salud2!


Título: Re: Crear un timer desde 0
Publicado por: naderST en 24 Octubre 2011, 02:40 am
Para usar Sleep o QueryPerformanceCounter que use las funciones para crear timers de la API de Windows, la idea es hacerlo sin salirse las de las librerias estandar.


Título: Re: Crear un timer desde 0
Publicado por: Riki_89D en 24 Octubre 2011, 10:31 am
La verdad no conocia la funcion QueryPerfomanceCounter() la Sleep() si,mi intencion era hacer un timer sin usar la Api,pero quizas es algo absurdo no?¿,es que la otra ves se me paso pro la cabeza,como abran echo la api Sleep() (o una igual) ?¿ supongo que en ASM no?¿ en ASM podria hacer el timer sin libreria?¿  en C podemos poner ASM inline,que me dicen? :=)


gracias!


Título: Re: Crear un timer desde 0
Publicado por: CeroX901 en 24 Octubre 2011, 17:52 pm
No conozco mucho de ASM, supongo que habrá algún truco... googlea a ver que encuentras...


Título: Re: Crear un timer desde 0
Publicado por: Riki_89D en 24 Octubre 2011, 18:23 pm
Hola,bueno ya e googleado un poco batsante xd claro hay una interrupcion (15h) para hacer el timer,lo que pasa que ya se sabe que los programas de 32 bits corren a modo protegido por lo que no es permitido usar interrupciones.....asi que me parece ami xd que abra que pasar por la Apicilla xxdxd


saludos


Título: Re: Crear un timer desde 0
Publicado por: <<<-Basura->>> en 25 Octubre 2011, 11:19 am
Utiliza un "NE555N", para hacer un timer.......  :o, bromeaba no se como hacerlo, tal vez, usando el clock del procesador en el que estas ??


Título: Re: Crear un timer desde 0
Publicado por: Riki_89D en 25 Octubre 2011, 15:03 pm
Buena idea,claro de echo es lo logico,pero no creo que pueda en C no?¿ popr eso preguntava si tenia que usar ASM por cuando se trata de trabajar con hardware directamente.....


saludos


Título: Re: Crear un timer desde 0
Publicado por: <<<-Basura->>> en 25 Octubre 2011, 19:43 pm
Pues cuando haces instrucciones en "C", y demás cosas en se están programando instrucciones para el micro, no cres..
Si quieres hacerlo en el nivel mas básico tienes que hacerlo en, Asm.
Recomiendo que antes que vayas hacer algo con tu micro, busca el "datasheet" de este