Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: kondrag_X1 en 13 Enero 2016, 18:12 PM

Título: No me reconoce las variables.
Publicado por: kondrag_X1 en 13 Enero 2016, 18:12 PM
Hola estoy intentando hacer la implementación del modbus en c y no sé porque me dice que los métodos no reconocen las variables globales ni los prototipos de las funciones y no sé porque.

MBSlave.cpp

#include "MBSlave.h"

UCHAR mFrame[BUFFER_SIZE];
UINT mHoldingRegsSize;
UINT   *mRegs;
UCHAR   mBroadcastFlag;
UCHAR mSlaveID;
UCHAR mFunction;
UINT errorCount;
UINT    T1_5; //inter character time out
UINT    T3_5; //frame delay
Serial  *MBPort;

// function definitions
void exceptionResponse(UCHAR exception);
UINT calculateCRC(UCHAR bufferSize);
void sendPacket(UCHAR bufferSize);

void
mBInit( Serial *SerialPort,
int    baud,
UCHAR _slaveID,
UINT  _holdingRegsSize,
            UINT  *_regs)
{
//implementación
}
metodos de las funciones.


MBSlave.h

#ifndef MBSlave_H
#define MBSlave_H

//definitions of types
typedef unsigned char UCHAR;
typedef unsigned int  UINT;

#include "mbed.h"

#define BUFFER_SIZE    64
#define MBdebug         1 
UINT mBPoll( void );
void mBInit(Serial *SerialPort,
            int    baud,
            UCHAR _slaveID,
            UINT  _holdingRegsSize,
            UINT  *_regs)
#endif
Título: Re: No me reconoce las variables.
Publicado por: MAFUS en 13 Enero 2016, 18:57 PM
Se me ocurre que no uses extern para cuando declares las variables locales en los fuentes que acceden a las variables externas que has definido.
Puede que el linkador le falte la información para encontrar las cabeceras y la biblioteca que has creado: -l<path_de_cabecera> -I<path_de_librería>
Título: Re: No me reconoce las variables.
Publicado por: kondrag_X1 en 13 Enero 2016, 19:02 PM
MAFUS muchísimas gracias por contestar acabo de ver el problema yo también pensaba que necesitaba extern pero no si te fijas bien en el .h la declaración void mBInit(....) le falta el punto y coma.

demasiadas horas delante del ordenador programando.
Título: Re: No me reconoce las variables.
Publicado por: furciorifa en 13 Enero 2016, 19:05 PM
Amigo porque no utilizas la librería #include<stdint.h> es más portable si la usas así y es estándar y aparte te evitas tiempo reinventando la rueda.
Título: Re: No me reconoce las variables.
Publicado por: MAFUS en 13 Enero 2016, 19:35 PM
Vaya fallo mas sutil, jaja. Buena vista  ;-)
Título: Re: No me reconoce las variables.
Publicado por: kondrag_X1 en 13 Enero 2016, 22:26 PM
Gracias furciorita pero estoy trabajando en un microcontrolador y para mi uso no es necesario.
Título: Re: No me reconoce las variables.
Publicado por: MAFUS en 13 Enero 2016, 22:35 PM
¿Cuál es el proyecto?
Título: Re: No me reconoce las variables.
Publicado por: kondrag_X1 en 14 Enero 2016, 02:27 AM
montar dos microcontroladores con comunicación modbus rs232 rtu uno de maestro y otro de esclavo.
Título: Re: No me reconoce las variables.
Publicado por: MAFUS en 14 Enero 2016, 12:57 PM
Ah, jeje, creía que le ibas a hacer algo al coche  ;)