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;
}
//------------------------------