Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > ASM y Microcontroladores
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por mario2000 Ver Mensaje
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
Mario lograr ese tiempo de retardo con la pc no es tarea facil.No quieres usar un micro,un 232 y el serial port? O quieres que sea algo que no ocupe power y sea de un tamaño reducido? Algo que puedas dejar dentro del conector DB25 ?

Un Saludo.
Responder Con Cita
  #2  
Antiguo 04-10-2008
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 04-10-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por mario2000 Ver Mensaje
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
Amigo, no es que nadie sepa nada aquí.
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.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #4  
Antiguo 04-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por mario2000 Ver Mensaje
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
Bueno en realidad una memoria se puede programar hasta manual si quieres.

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.
Responder Con Cita
  #5  
Antiguo 04-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
La ultima vez que alguien me pidio ayuda para algo extraño asi como esto que pide el amigo Mario, el hombre queria hacer algo como esto.

Un Saludo.

PD: No quiero decir que este sea el caso.
Responder Con Cita
  #6  
Antiguo 04-10-2008
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 04-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por mario2000 Ver Mensaje
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.
jajajajajajaja mi buen Mario, pues por aca esperamos a ver si aprendemos un poco al respecto.

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.
Responder Con Cita
  #8  
Antiguo 04-10-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por JoseFco Ver Mensaje
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.
Estimado Jose, para eso existen los timers. Le indicas al timer del microcontrolador que interrumpa cada una determinada cantidad de ticks , el tiempo que deseas esperar, asignas una rutina de interrupcion que haga lo que tiene que hacer cuando se produzca la iterrupcion. El uC continua sus tareas y al llegar el contador al tick indicado el timer interrumpe en ese tock, ni uno mas ni un o menos, asegurandote que paso el tiempo exacto necesario.

De esta manera no envias al micro a esperar sin hacer nada, sino que se aprovecha productivamente cada ciclo de la cpu.

Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 19:51:04.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi