| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
jariosm Cdt

Registrado: 28 May 2007Mensajes: 10
|
Publicado: Lun 28 May, 2007 11:32 pm Asunto: Muestreo puerto Paralelo |
|
|
Hola Amigos
Sucede que estoy haciendo mi trabajo de grado, , entre todo lo que tengo que hacer tengo que adquirir unos datos via puerto paralelo, mi problema está en la frecuencia maxima que puedo subir, el programa lo estoy trabajando en win98, pero solo me deja adquirir señales de menos de 1 Hz teniendo en cuenta que debo subir señales entre 10 y 20 Hz, . Ojala alguien me pueda ayudar con esto, no se si ouput32.dll me sirva el problema es que soy novato en Builder y no se como manejar las dll o si tienen una mejor solución les agradecería mucho |
|
| Volver arriba |
|
 |
jacko Master


Registrado: 03 Sep 2005Mensajes: 287Ubicación: Colombia
|
Publicado: Mie 30 May, 2007 4:50 pm Asunto: |
|
|
Hola Jario
Pon el codigo que estas utilizando para ver como manejas la frecuencia o danos mas informacion para poder ayudarte.
Saludos _________________ Dios es real... a menos que se declare entero! |
|
| Volver arriba |
|
 |
jariosm Cdt

Registrado: 28 May 2007Mensajes: 10
|
Publicado: Mie 30 May, 2007 5:53 pm Asunto: |
|
|
pUES MIRA A CONTINUACION TE MUESTRO COMO ESTOY ADQUIRIENDO LOS DATOS, COMO PODRAS VER ESTOY MANEJANDO UN TIMER EL CUAL POR MEDIO DE UN LABEL PUEDO MODIFICAR EL INTERVAL (NUMERO DE PUNTOS A GRAFICAR) PERO EN NINGUN MOMENTO LE DIGO UN RANGO DE FRECUENCIAS O UTILIZO UNA DLL O ALGO QUE ME SIRVA PARA QUE ME DEJE SUBIR UNA FRECUENCIA MAYOR PORQUE REALMENTE NO LO SE HACER, MUCHAS GRACIAS SI PUEDES AYUDARME
void __fastcall TForm1::IniciarClick(TObject *Sender)
{
Timer1->Enabled = 1;
Series1->Clear();
outportb(0x37A, 43);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
dato = inportb(0x378)-255;
Timer1->Interval=StrToInt(Edit1->Text);
t++;
Series1->AddXY(t, dato, "", clTeeColor); |
|
| Volver arriba |
|
 |
jariosm Cdt

Registrado: 28 May 2007Mensajes: 10
|
Publicado: Mie 30 May, 2007 5:55 pm Asunto: |
|
|
| yA LOS DATOS ESTAN DIGITALIZADOS DESDE EL CIRCUITO PUES ESTOY UTILIZANDO UN ADC QUE LO HACE EN INPORT LE RESTO 255 PARA QUE ME GRAFIQUE LA SEÑAL EN EL EJE X PUES EL ADC ME MANDA LOS DATOS DESDE 0 HASTA 255 AYUDA POR FAVOR GRACIAS |
|
| Volver arriba |
|
 |
jacko Master


Registrado: 03 Sep 2005Mensajes: 287Ubicación: Colombia
|
Publicado: Jue 31 May, 2007 5:00 am Asunto: |
|
|
Ok Jario, por lo que entiendo, exactamente lo que necesitas es un timer con intervalos de microsegundos y no con milisegundos que es precisamente el que estas utilizando. Verdad?
Como Frecuencia = 1/Periodo, pues al seleccionar el menor intervalo (1miliseg), esto te va a dar una frecuencia de muestreo maxima de 1000Hz.
Asi que te recomiendo revises estos enlaces que encontré en el foro.
https://cppbuilder.es/viewtopic.php?t=9296
https://cppbuilder.es/viewtopic.php?t=9322&highlight=timer
http://www.clubdelphi.com/foros/showthread.php?t=14965
Los encontre por Timer con la funcion Buscar de este foro, y habian mas. Intentalo tu mismo a ver que encuentras.
Nos cuentas como te fue! _________________ Dios es real... a menos que se declare entero! |
|
| Volver arriba |
|
 |
jariosm Cdt

Registrado: 28 May 2007Mensajes: 10
|
Publicado: Jue 31 May, 2007 5:59 pm Asunto: |
|
|
| jacko mira he pusto un labe que em permite modificar la propiedad interval del timer y lo unico que hace es graficar con mas o con menos puntos, sin embargo no me permite adquirir una mayor frecuencia, alguien me dijo que es por el sistema operativo, yo lo estoy implementando en win xp y en win98 y en los dos se comporta igual no se si se deba utilizar una dll o algo que le permita al prograqma hacerlo conn mayor precision ayuda porfa gracias |
|
| Volver arriba |
|
 |
jacko Master


Registrado: 03 Sep 2005Mensajes: 287Ubicación: Colombia
|
Publicado: Jue 31 May, 2007 9:20 pm Asunto: |
|
|
Hola Jario
Como te explicaba mas arriba, la cantidad de muestreos (precision) esta dada por el intervalo de tiempo que te permite el timer. Pero como el timer te permite muestreos maximos de 1KHz pues, no puedes leer mas frecuencias.
Revisa los enlaces que te puse, me acuerdo haber visto un for() que te permite hacer intervalos de tiempo mas pequeños.
Dudo que sea por el Sistema Operativo, porque los muestreos los hace el procesador sobre el puerto.
Nos cuentas como te va. Saludos. _________________ Dios es real... a menos que se declare entero! |
|
| Volver arriba |
|
 |
Miguel Angel Torres Master


Registrado: 23 Abr 2006Mensajes: 282Ubicación: Siegen, Alemania
|
Publicado: Vie 01 Jun, 2007 8:22 am Asunto: |
|
|
Te recomendaría usar el puerto serial y el muestreo lo realizas en un microcontrolador y comunicas las dos interfaces, creo que es la manera más apropiada para realizar este procedimiento y como dices que es un trabajo de grado, entonces merece el esfuerzo. Suerte... _________________ Entre más sé, sé que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Siegen - Deutschland |
|
| Volver arriba |
|
 |
jariosm Cdt

Registrado: 28 May 2007Mensajes: 10
|
Publicado: Vie 01 Jun, 2007 4:36 pm Asunto: |
|
|
| Haber si es un trabajo de grado pero lo que estoy haciendo es un sistema completo de telemetría, estoy trabajandole a los radios RF(transmisor y receptor) al codificador y al decodificador y con el puerto paralelo estoy pretendiendo visualizar la señal en el pc, por que puerto paralelo? pues porque La interconexión entre el ADC y el PC a través del puerto paralelo posibilita un intercambio de información de una forma mas rápida que a través del puerto serie. Esto es debido a que se produce una transferencia de datos de byte en byte en lugar de ser de bit en bit (1 byte = 8 bits), lo del micro lo he pensado pero realmente tengo poca experiencia con esto, no se si pudieras ayudarme de antemano muchas gracias |
|
| Volver arriba |
|
 |
Miguel Angel Torres Master


Registrado: 23 Abr 2006Mensajes: 282Ubicación: Siegen, Alemania
|
Publicado: Vie 01 Jun, 2007 6:33 pm Asunto: |
|
|
Para el muestreo puedes usar el microcontrolador y al tiempo enviar la información (al menos que necesites una resolución muy alta para el adc y unavelocidad de transmisión elevada), y pues la serial no es del nada mala ya que puedes manejar velocidades de 4800kbps, 9600kbps,19200kpbs y más dependiendo del micro que se use. Yo usaba uno de microchip pic16f877 y el picC para programarlo. El código de la serial y de ADC ya viene en el compilador solo es llamar las funciones y listo. Suerte... _________________ Entre más sé, sé que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Siegen - Deutschland |
|
| Volver arriba |
|
 |
piraquive Ens

Registrado: 21 Ene 2007Mensajes: 31
|
Publicado: Sab 02 Jun, 2007 4:34 am Asunto: |
|
|
Bueno, creo que lo mejor que puedes hacer en este caso si es utilizar un micro o un pic. Yo tengo codigo del microcontrolador gp32 de motorola el cual utiliza el adc y el puerto serial.
Si deseas tomar este camino me avisas y te mando codigo que te puede ayudar. |
|
| Volver arriba |
|
 |
jariosm Cdt

Registrado: 28 May 2007Mensajes: 10
|
Publicado: Sab 02 Jun, 2007 11:22 pm Asunto: gracias ayuda |
|
|
| Piraquive y quien pueda ayudarme estaría muy agradecido pues este es un trabajo muy importante para mi, ayudenme gracias |
|
| Volver arriba |
|
 |
jariosm Cdt

Registrado: 28 May 2007Mensajes: 10
|
Publicado: Lun 04 Jun, 2007 4:11 pm Asunto: |
|
|
| Amigos de verdad necesito ayuda, he intentado por todos los medios pero nada sigue funcionando a muy baja frecuencia Si alguien me pudiera ayudar le estaría muy muy agradecido |
|
| Volver arriba |
|
 |
vrodriguez Lt

Registrado: 01 Abr 2005Mensajes: 77
|
Publicado: Lun 04 Jun, 2007 9:02 pm Asunto: Muestreo puerto Paralelo |
|
|
Hola jariosm:
Yo creo que la solución a tu problema es crear un programa RTI ( Rutina de Tratamiento de Interrupcion ), es decir:
1. La puerta paralela contiene una interrupcion IRQ7.
2. El controlador "hardware" se programa tanto de entrada como salida.
3. Este dispositivo gerea una interrupcion cuando sale o entra un dato.
4. Se puede asociar esta IRQ a un programa especifico, el cual captura el dato en el buffer de entrada o salida según sea el caso.
5. De esta forma queda independiente la frecuencia de llegada o salida de los datos por la puerta serial, ya que es por medio de interrupciones cuando se capturan.
Intenta por estos lados... yo tratare de buscar elguna rutina de ejemplo que tenia de los tiempos del DOS y WIN98...
Att.
vrodriguez |
|
| Volver arriba |
|
 |
jariosm Cdt

Registrado: 28 May 2007Mensajes: 10
|
Publicado: Mar 05 Jun, 2007 1:43 am Asunto: |
|
|
| vrodriguez, muchas gracias por tu ayuda, mirare en internet como puedo hacer eso, de todas formas cualquier info que me puedas brindar te estaría muy muy agradecido |
|
| Volver arriba |
|
 |
|