 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Juan Pablo Invitado
|
Publicado: Lun 23 Jun, 2003 12:06 pm Asunto: Control de una placa mediante el puerto paralelo |
|
|
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 |
|
 |
Juan Pablo Invitado
|
Publicado: Lun 23 Jun, 2003 12:26 pm Asunto: |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|