Foro de elhacker.net

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
Código
  1. #include "MBSlave.h"
  2.  
  3. UCHAR mFrame[BUFFER_SIZE];
  4. UINT mHoldingRegsSize;
  5. UINT   *mRegs;
  6. UCHAR   mBroadcastFlag;
  7. UCHAR mSlaveID;
  8. UCHAR mFunction;
  9. UINT errorCount;
  10. UINT    T1_5; //inter character time out
  11. UINT    T3_5; //frame delay
  12. Serial  *MBPort;
  13.  
  14. // function definitions
  15. void exceptionResponse(UCHAR exception);
  16. UINT calculateCRC(UCHAR bufferSize);
  17. void sendPacket(UCHAR bufferSize);
  18.  
  19. void
  20. mBInit( Serial *SerialPort,
  21. int    baud,
  22. UCHAR _slaveID,
  23. UINT  _holdingRegsSize,
  24.            UINT  *_regs)
  25. {
  26. //implementación
  27. }
  28. metodos de las funciones.
  29.  

MBSlave.h
Código
  1. #ifndef MBSlave_H
  2. #define MBSlave_H
  3.  
  4. //definitions of types
  5. typedef unsigned char UCHAR;
  6. typedef unsigned int  UINT;
  7.  
  8. #include "mbed.h"
  9.  
  10. #define BUFFER_SIZE    64
  11. #define MBdebug         1
  12. UINT mBPoll( void );
  13. void mBInit(Serial *SerialPort,
  14.            int    baud,
  15.            UCHAR _slaveID,
  16.            UINT  _holdingRegsSize,
  17.            UINT  *_regs)
  18. #endif
  19.  


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  ;)