FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Claro que quiero hacerlo en delphi, el retardo de 1 microsegundo es para tener una base de tiempo fija para generar los ciclos de dato y reloj (I2C) los cuales llevan retardos de 50 a 100 microsegundos de esta manera si utiliso el minimo de 50 microsegundo me tardo en enviar toda la palabra de direccion unos 600 microssegundos y si estoy leyendo una memoria eeprom de 1024 k se puede tardar unos 2 o tres segundos lo mismo que cualquier programa normal de lectura de estas memorias como el icprog. Tambien puedo utilizar el puerto serie para esto mismo usando los pines adicionales que este trae
|
#2
|
||||
|
||||
A ver, vamonos por partes; aunque puede que esta informacion ya la sepas para enviar un dato a un puerto requieres de la API en modo Kernel WRITE_PORT_UCHAR, aunque ya estando en este modo (Driver) mejor seria enviar un dato directamente al puerto con out. el valor de dicho puerto es asignado por el SO aunque dudo que cambie mucho.
Si no quieres meterte con Drivers o assembler puedes ver éste ejemplo pero la espera de dos 0.001 milisegundos será retardada considerablemente en los pasos de control y rutinas auxiliares entre lenguajes. Sleep o GetTickCount solo va permitirte controlar hasta una exactitud de un milisegundo (no menos), y ni si quiera loc clicks internos del reloj del ordenador te permitiran hacer una espera tan ínfima. Talvez si haces un circuito adicional que te controle un buffer en cola utilizando un 555 y envie la informacion a tu dispositivo, aunque de alli no paso porque no soy muy "electónico" como Uds. Saludos |
#3
|
|||
|
|||
Cita:
Un Saludo. |
#4
|
|||
|
|||
Hola JoseFco, en visualbasic vi un ejemplo con esa funcion, yo se que se puede por que los programadores de memorias estan hechos con delphi , ya veo que nadie sabe por aca , me va a tocar jalarme los cabellos y descubrirlo por mi mismo
|
#5
|
||||
|
||||
Cita:
Como Jose bien te dice estas buscando la solución incorrecta. Lo apropiado es que le pases el trabajo a un microcontrolador que puede interrumpir a la velocidad que necesitas y que ha sido diseñado para esa función, y realices en delphi una interfase de comunicaciones con tu sistema. Saludos. |
#6
|
|||
|
|||
Cita:
De algo estoy seguro amigo mario y es que no quieres tanto relajo en el hardware. Su logica tendra y pues lo del puerto paralelo su logica tambien tendra.(puedo especular, no quieres fuente externa,quieres usar la facilidad del voltage de pines para interface directa, etc.) Veo que no quieres brindar mas detalles del proyecto, estas en tu derecho, pero si no quieres hacerlo en publico y me haces llegar algo privado,puede y te pueda ayudar.Quita y lo que quieres hacer existe o algo que se le parezca y se modifica. De todas formas exito en esa tarea amigo. Un Saludo. |
#8
|
|||
|
|||
Claro que uds si saben, pero no me han entendido, ya tengo algunas soluciones que encontre en google, es en asm en delphi leyendo el tiempo que tarda una rutina de acuerdo a eso puedo hacer el calculo aproximado de un microsegundo despues les explico bien extimados compañeros.
|
#9
|
|||
|
|||
Cita:
En la epoca "AC" se cargaba un registro con un valor, digamos 10 y se pasaba al ACC , al mismo tiempo se decrementaba ese valor, se comparaba el ACC a cero y si no era = entonces se mandava la rutina al principio donde el registro ya no tenia 10, si no 9 y asi hasta que al llegar a estar en cero pues saltaba al siguiente paso y la retornabamos.Se calcula el tiempo que estas funciones demoraban y calculando los ciclos de maquina de acuerdo al cristal y la frecuencia del CPU.Se podia incremental el valor del registro o disminuirlo. En pocas palabras una rutina de retardo es gastar tiempo, mandando al procesador a hacer algo donde contamos el tiempo que se demora en hacerlo y teniendo la forma de que salga de esa rutina (loop) en el tiempo que deceamos.En un CPU,MPU,etc. no existe decirle duermete y despierta cuando el reloj despertador te de la orden. Eso de Sleep (1000) solo es una forma de programar, al final el CPU solo lo mandamos a dar unas cuantas vueltas detro de una rutina y al final de el numero de vultas que se le asigno el tipo sale. Eso fue lo que estudie hace mucho al respecto, la tecnica cambio mucho y ya yo estoy algo mayor para poder seguirle el ritmo. Un Saludo. PD: No soy la verdad ni la mentira, solo el camina a ellas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Retardo en configuración del registro | MAXIUM | Varios | 4 | 01-02-2008 02:47:58 |
TVideoCapture retardo en el sonido. | NPIdea | Varios | 0 | 08-03-2007 15:04:11 |
Retardo al visualizar una pagina web. | ALBERTO.LAZARO | Varios | 8 | 28-11-2006 23:56:41 |
Retardo en cadena de texto | mutant09 | C++ Builder | 2 | 30-04-2004 17:30:35 |
Como hago un retardo? | seken | Varios | 7 | 23-02-2004 00:08:00 |
|