This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
DUDA Problema con marlin
#1
Buenas noches alguien me puede ayudar por favor me podríais decir como puedo solucionar esto os adjunto imagen


[Imagen: 1532034046769260742319.jpg]
  Responder
#2
Si no tienes mucha experiencia y, encima, tampoco sabes C/C++, deberías usar un firmware pre-configurado para tu hardware. Creo que deberías decir qué impresora/placa tienes y ver si alguien con el mismo hardware ya ha modificado los archivos de configuración de la versión de Marlin que quieras instalar. De esa forma te asegurarías que el firmware, como mínimo, va a compilar.

En C/C++ las variables han de ser declaradas antes de que las puedas usar. El mensaje de error que aparece en la imagen lo que te está indicando es que la variable rx_buffer no está declarada en ese ámbito. Si miras al principio del fichero donde te da el error (MarlinSerial.cpp) verás estas líneas:


Código:
 #if UART_PRESENT(SERIAL_PORT)

   ring_buffer_r rx_buffer = { { 0 }, 0, 0 };


Y si miras en MarlinSerial.h estas otras


Código:
// The presence of the UBRRH register is used to detect a UART.
#define UART_PRESENT(port) ((port == 0 && (defined(UBRRH) || defined(UBRR0H))) || \
                           (port == 1 && defined(UBRR1H)) || (port == 2 && defined(UBRR2H)) || \
                           (port == 3 && defined(UBRR3H)))


Es decir:
1- Para que se declare la variable rx_buffer debe ser cierto UART_PRESENT(SERIAL_PORT) (hay una UART en el puerto serie especificado)
2- Para detectar la correspondiente UART se usa el registro UBRRH y según eso
   si en tu configuración SERIAL_PORT vale 0 en algún sitio deberías tener una línea que empiece con #define UBRRH  o #define UBRR0H
   si en tu configuración SERIAL_PORT vale 1 en algún sitio deberías tener una línea que empiece con #define UBRR1H
   si en tu configuración SERIAL_PORT vale 2 en algún sitio deberías tener una línea que empiece con #define UBRR2H
   y si en tu configuración SERIAL_PORT vale 3 en algún sitio deberías tener una línea que empiece con #define UBRR3H

Así, a primera vista, parece que tu problema viene porque SERIAL_PORT tiene un valor y la línea con #define UBRR?? de tu configuración no coincida con la/s indicada/s más arriba. Vamos, que puede que tengas configurado el puerto serie 0 y luego tengas #define UBRR1H por ejemplo. El problema es que si no conoces tu hardware de nada te va a servir cambiar la línea correspondiente porque luego será peor y el Marlin que compiles no funcionará correctamente en tu impresora.

Saludos.
  Responder
#3
Entonces tengo un verdadero problema.
Muchas gracias por todo
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  CONSULTA RE: Problema con marlin Vicente48 3 1,552 13-09-2018, 11:37 AM
Último mensaje: BlackBit
  CONSULTA Problema con marlin Vicente48 0 938 27-08-2018, 04:00 PM
Último mensaje: Vicente48
  DUDA Problema con marlin Vicente48 1 994 10-08-2018, 09:31 PM
Último mensaje: Bayaz
  DUDA Problema con marlin Vicente48 0 859 01-08-2018, 07:35 AM
Último mensaje: Vicente48
  CONSULTA RE: Problema con marlin Vicente48 0 866 25-07-2018, 02:07 PM
Último mensaje: Vicente48