Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Control de una placa mediante el puerto paralelo

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Control de una placa mediante el puerto paralelo Responder citando

Saludos al foro.

Trabajo con builder 5.0 con la versión estandard.
He adquirido una placa de Entradas/Salidas que se conecta al puerto paralelo. Junto con la placa se tienen ficheros con rutinas ya fabricadas para controlarla en distintos lenguajes: C, PASCAL, VISUALBASIC.

Concretamente en lenguaje C vienen dos ficheros, uno con extensión C y otro con extensión H. Reproduzco aquí el fichero con extensión H, ya que el de extensión C son 48KB.
/* I2C.H */
#define MaxIOcard 3
#define MaxIOchip 7
#define MaxIOchannel 64
#define MaxDACchannel 32
#define MaxADchannel 16
#define MaxDAchannel 4

extern int IOconfig[];
extern int IOdata[];
extern int IO[];
extern int DAC[];
extern int AD[];
extern int DA[];
extern int ControlPort;
extern int StatusPort;
extern int I2CbusDelay;

extern void DecToBin(int DecNumber, char *BinNumber);
extern int BinToDec(char *BinNumber);
extern void DecToHex(int DecNumber, char *HexNumber);
extern int HexToDec(char *HexNumber);

/*IO CONFIGURATION PROCEDURES*/
extern void ConfigAllIOasInput(void);
extern void ConfigAllIOasOutput(void);
extern void ConfigIOchipAsInput(int Chip_no);
extern void ConfigIOchipAsOutput(int Chip_no);
extern void ConfigIOchannelAsInput(int Channel_no);
extern void ConfigIOchannelAsOutput(int Channel_no);

/*UPDATE IOdata & IO ARRAY PROCEDURES*/
extern void UpdateIOdataArray(int Chip_no, int Data);
extern void ClearIOdataArray(int Chip_no);
extern void SetIOdataArray(int Chip_no);
extern void SetIOchArray(int Channel_no);
extern void ClearIOchArray(int Channel_no);

/*OUTPUT PROCEDURES*/
extern void IOoutput(int Chip_no, int Data);
extern void UpdateAllIO(void);
extern void ClearAllIO(void);
extern void SetAllIO(void);
extern void UpdateIOchip(int Chip_no);
extern void ClearIOchip(int Chip_no);
extern void SetIOchip(int Chip_no);
extern void SetIOchannel(int Channel_no);
extern void ClearIOchannel(int Channel_no);

/*INPUT PROCEDURES*/
extern void ReadIOchip(int Chip_no);
extern void ReadAllIO(void);
extern void ReadIOchannel(int Channel_no);

/*6 BIT DAC CONVERTER PROCEDURES*/
extern void OutputDACchannel(int Channel_no, int Data);
extern void UpdateDACchannel(int Channel_no);
extern void ClearDACchannel(int Channel_no);
extern void SetDACchannel(int Channel_no);
extern void UpdateDACchip(int Chip_no);
extern void ClearDACchip(int Chip_no);
extern void SetDACchip(int Chip_no);
extern void UpdateAllDAC(void);
extern void ClearAllDAC(void);
extern void SetAllDAC(void);

/*8 BIT DA CONVERTER PROCEDURES*/
extern void OutputDAchannel(int Channel_no, int Data);
extern void UpdateDAchannel(int Channel_no);
extern void ClearDAchannel(int Channel_no);
extern void SetDAchannel(int Channel_no);
extern void UpdateAllDA(void);
extern void ClearAllDA(void);
extern void SetAllDA(void);

/*8 BIT AD CONVERTER PROCEDURES*/
extern void ReadADchannel(int Channel_no);
extern void ReadADchip(int Chip_no);
extern void ReadAllAD(void);

/*GENERAL PROCEDURES*/
extern void ReadAll(void);
extern void ReadCard(int Card_no);
extern void UpdateAll(void);
extern void UpdateCard(int Card_no);

/*I2C BUS CONDITIONS*/
extern void SelectI2CprinterPort(int Printer_no);
extern void I2CBusNotBusy(void);

Incluyo este fichero en builder y llamo a cualquier función que hay definida.

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"

#include "i2c.h"

TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ConfigAllIOasInput();
}


Pero al compilar obtengo un error.
[Linker Error] Unresolved external 'ConfigAllIOasInput()' referenced from C:\PLACAPP\UNIT1.OBJ

¿Alguien puede decirme que es lo que hay que hacer para que builder entienda este fichero escrito en C?


Gracias de antemano al foro.
Volver arriba
Mensaje    Asunto: Responder citando

Bueno, he avanzado un poco más.

Para que me entienda el fchero escrito en C lo he incluido en el proyecto(Add file to Project). Pero ahora me sale el siguiente error:
[C++ Warning] I2C.C(292): W8065 Call to function 'outport' with no prototype

¿Alguien sabe cómo solucionarlo?
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.