• Lunes 6 de Mayo de 2024, 18:57

Autor Tema:  Comunicacion Del Puerto Paralelo En Win98  (Leído 1447 veces)

leslimix

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Comunicacion Del Puerto Paralelo En Win98
« en: Miércoles 16 de Junio de 2004, 20:49 »
0
Necesito ayuda con respecto a las funciones PortIn y PortOut para manejar el motor de un aparato llamado difractometro de rayos X, gracias...
P.D.- Enviar respuesta lo antes posible...

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Comunicacion Del Puerto Paralelo En Win98
« Respuesta #1 en: Miércoles 16 de Junio de 2004, 20:54 »
0
Si estas tratando de tener acceso directo al hardware eso es imposible en el anillo 3 (de usuario). Debes estar tratando de usar un código diseñado originalmente para 16 bit (MS-DOS) en un entorno de 32 bits (Windows), verdad?

http://silverstr.ufies.org/lotr0/terminology.html

http://silverstr.ufies.org/lotr0/

Buscá información, para usar el puerto que quieras en Windows haces CreateFile() ya sea con COM1, COM2, LPT, etc.

 :ph34r:  :hola:  :comp:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

leslimix

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Comunicacion Del Puerto Paralelo En Win98
« Respuesta #2 en: Miércoles 16 de Junio de 2004, 21:00 »
0
Para ser clara necesito manipular el puerto paralelo  para controlar el motor que mueve el brazo de un parato llamado difractometro de rayos x, este codigo que te envio es el que tengo me falta controlar la entrada fijate bien como hice el codigo: esta pantalla es simple mando la salida y eso mueve el motor, pero  cuando quiero crear otro formulario pues para definir a que el brazo se vcaya a un angulo especifico me da errores de PortIn, que no entiendo que hacer .....

#include <vcl\vcl.h>
#pragma hdrstop
#include "Formbar.h"
#include "io.h"
#include "Angulo.h"
HMODULE hio;
int paso=1,sentido=0;

//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TForbarrido *Forbarrido;
//---------------------------------------------------------------------------
__fastcall TForbarrido::TForbarrido(TComponent* Owner)
   : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForbarrido::FormCreate(TObject *Sender)
{
    hio=LoadLibrary("io");
    PortOut=(PORTOUT)GetProcAddress(hio,"PortOut");
    PortIn=(PORTIN)GetProcAddress(hio,"PortIn");

}
//---------------------------------------------------------------------------
void __fastcall TForbarrido::Button1Click(TObject *Sender)
{
  PortOut(0x378,atoi(txtpaso1->Text.c_str()));
 
}
//---------------------------------------------------------------------------
void __fastcall TForbarrido::Button2Click(TObject *Sender)
{
  PortOut(0x378,atoi(txtpaso2->Text.c_str()));   
}
//---------------------------------------------------------------------------
void __fastcall TForbarrido::Button3Click(TObject *Sender)
{
  PortOut(0x378,atoi(txtpaso3->Text.c_str()));   
}
//---------------------------------------------------------------------------
void __fastcall TForbarrido::Button4Click(TObject *Sender)
{
  PortOut(0x378,atoi(txtpaso4->Text.c_str()));
}
//---------------------------------------------------------------------------
void __fastcall TForbarrido::Button5Click(TObject *Sender)
{
  TMpaso->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForbarrido::TMpasoTimer(TObject *Sender)
{
    switch (paso)
        {
          case 1: paso=2;
                  PortOut(0x378,atoi(txtpaso1->Text.c_str()));
                  break;
          case 2: paso=3;
                  PortOut(0x378,atoi(txtpaso2->Text.c_str()));
                  break;
          case 3: paso=4;
                  PortOut(0x378,atoi(txtpaso3->Text.c_str()));
                  break;
          case 4: paso=1;
                  PortOut(0x378,atoi(txtpaso4->Text.c_str()));
                  break;
        }
}
//---------------------------------------------------------------------------
void __fastcall TForbarrido::Button6Click(TObject *Sender)
{
 TMpaso->Enabled=false;
}
//------------------------------

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Comunicacion Del Puerto Paralelo En Win98
« Respuesta #3 en: Miércoles 16 de Junio de 2004, 21:01 »
0
Lee mi anterior mensaje, no podes hacer eso en Windows, ese código SEGURO que fue diseñado para DOS.

 :ph34r:  :comp:  :hola:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

leslimix

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Comunicacion Del Puerto Paralelo En Win98
« Respuesta #4 en: Miércoles 16 de Junio de 2004, 21:08 »
0
Ya lo corri bajo windows 98 y sirve corriendo el .exe de borland c++ builder lo q necesito es como sabes en que angulo me encuentro o sea leer el puerto de  entrada porque ya mando para la salida del puerto, me explique?????, gracias pero tu respuesta no me ayuda en nada, hay un programa que uso bajo ms dos que se llama qmodem que se parece al hipe terminal de windows, pero no me sirve quiero uno creado en borland para hacer la interfaz grafica del difractometro mediante la comucacion paralelo-serial, por favor si tienes alguna informacion te lo agradeceria, hasta pronto...

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Comunicacion Del Puerto Paralelo En Win98
« Respuesta #5 en: Jueves 17 de Junio de 2004, 00:03 »
0
Ya te dejé links con información y te dije como usar el puerto paralelo en Windows en mi primera respuesta:

http://silverstr.ufies.org/lotr0/terminology.html

http://silverstr.ufies.org/lotr0/

Buscá información, para usar el puerto que quieras en Windows haces CreateFile() ya sea con COM1, COM2, LPT, etc.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.