Probando el TZXDuino [y CASDuino, MaxDuino,...]

Proyectos de hardware con sus esquemáticos y si llevan software en fuente

Moderadores: cacharreo, Fundadores

Reglas del Foro
Aquí solo tienen cabida proyectos de hardware que incluyan siempre al menos sus esquemáticos para poder reproducirlos si llevan componentes electrónicos, y si es posible los ficheros del programa en que se hacen, los diseños de las placas, los gerber, etc. Si llevan algún tipo de software asociado debe estar diponible el código fuente

Para los que no cumplen estas condiciones se debe postear en el foro de proyectos generales.
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6355
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 114 times
Been thanked: 316 times
Contactar:

Re: Probando el TZXDuino

Mensaje por merlinkv »

Estaba intentado usar LiquidCrystal_I2C_Soft.h y LiquidCrystal_I2C_Soft con un LCD20x4 pero me da error ... con LCD16x2 va bien ... ¿alguna idea?

Me explico:

Sin problemas.

Código: Seleccionar todo

#include "LiquidCrystal_I2C_Soft.h"
  LiquidCrystal_I2C lcd(LCD_I2C_ADDR,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
  char indicators[] = {'|', '/', '-',0};
  uint8_t SpecialChar [8]= { 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00 };
  #define SCREENSIZE 16
Error en la segunda línea al compilar

Código: Seleccionar todo

#include "LiquidCrystal_I2C_Soft.h"
  LiquidCrystal_I2C lcd(LCD_I2C_ADDR,20,4); // set the LCD address to 0x27 for a 20 chars and 4 line display
  char indicators[] = {'|', '/', '-',0};
  uint8_t SpecialChar [8]= { 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00 };
  #define SCREENSIZE 20
No sé como será la tercera Guerra Mundial. Pero sí sé como será la cuarta: Con palos y piedras.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6355
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 114 times
Been thanked: 316 times
Contactar:

Re: Probando el TZXDuino

Mensaje por merlinkv »

Pues nada con LCD16 todo bien, con LCD20, error ... seguramente haya metido el cazo en alguna chorrada ... sigo revisando el código ... :D
No sé como será la tercera Guerra Mundial. Pero sí sé como será la cuarta: Con palos y piedras.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
Avatar de Usuario
overCLK !CPC 4
Demonio segundo orden
Demonio segundo orden
Mensajes: 1709
Registrado: 14 Ago 2015, 09:28
Ubicación: Vedra
Has thanked: 3 times
Been thanked: 4 times

Re: Probando el TZXDuino

Mensaje por overCLK »

merlinkv escribió: 19 Sep 2022, 07:20 Pues nada con LCD16 todo bien, con LCD20, error ... seguramente haya metido el cazo en alguna chorrada ... sigo revisando el código ... :D
No he visto que hayas puesto que error te da exactamente. Puede que dé alguna pista, no sé. :)
Imagen
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6355
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 114 times
Been thanked: 316 times
Contactar:

Re: Probando el TZXDuino

Mensaje por merlinkv »

El error me lo da aquí ...

Código: Seleccionar todo

#ifdef LCD16
  #include "LiquidCrystal_I2C_Soft.h"
  LiquidCrystal_I2C lcd(LCD_I2C_ADDR,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
  char indicators[] = {'|', '/', '-',0};
  uint8_t SpecialChar [8]= { 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00 };
  #define SCREENSIZE 16
#elif defined(LCD20)
  #include "LiquidCrystal_I2C_Soft.h"
  LiquidCrystal_I2C lcd(LCD_I2C_ADDR,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display // AQUI ME DA EL ERROR AL COMPILAR
  char indicators[] = {'|', '/', '-',0};
  uint8_t SpecialChar [8]= { 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00 };
  #define SCREENSIZE 20
#elif defined(OLED1306)
  #if defined(Use_SoftI2CMaster) && defined(__AVR_ATmega2560__) 
    #define SDA_PORT PORTD
    #define SDA_PIN 1 
    #define SCL_PORT PORTD
    #define SCL_PIN 0 
    #include <SoftI2CMaster.h>         
  #elif defined(Use_SoftI2CMaster) 
....
Y en la "ventana de compilación" ...

Código: Seleccionar todo

In file included from E:\MegaDuino_Firmware\MegaDuino_2.0\MegaDuino_2.0.ino:11:0:
hwconfig.h:53:3: error: 'LiquidCrystal_I2C' does not name a type
   LiquidCrystal_I2C lcd(LCD_I2C_ADDR,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display
   ^~~~~~~~~~~~~~~~~
E:\MegaDuino_Firmware\MegaDuino_2.0\MegaDuino_2.0.ino: In function 'void loop()':
MegaDuino_2.0:218:13: error: 'lcd' was not declared in this scope
             lcd.setCursor(0,0); lcd.print(filename2.substring(0,20));
             ^~~
MegaDuino_2.0:494:7: error: 'lcd' was not declared in this scope
       lcd.setCursor(0,1); lcd.print("                    ");
......
El caso es que he revisado todas las definiciones de LCD20 y no veo errores. La verdad es que varían poco respecto a las de LCD16, salvo evidentemente en lo relativo a "imprimir" los caracteres en pantalla.

Con LCD16 que es lo mismo salvo, como digo, por las posiciones de pantalla y número de caracteres a mostrar, no me da error ....
No sé como será la tercera Guerra Mundial. Pero sí sé como será la cuarta: Con palos y piedras.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
Avatar de Usuario
overCLK !CPC 4
Demonio segundo orden
Demonio segundo orden
Mensajes: 1709
Registrado: 14 Ago 2015, 09:28
Ubicación: Vedra
Has thanked: 3 times
Been thanked: 4 times

Re: Probando el TZXDuino

Mensaje por overCLK »

Si que es curioso porque se queja de que LiquidCrystal_I2C no es un tipo conocido cuando compilas con LCD20. Lo único que me llama la atención es que dice que el fallo ocurre en hmconfig.h y me hace pensar que igual en ese fichero se incluye condicionalmente algún fichero .h y para el caso LCD20 no se haga. Yo intentaría mirar que hay en ese hmconfig.h porque parece que ahí empieza el problema.
Espero que te sirva.

Edito: Igual me estoy liando porque no sé si ese código que estás pegando es ya hmconfig.h o está en el .ino directamente...
Imagen
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5623
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1190 times
Been thanked: 2719 times
Contactar:

Re: Probando el TZXDuino

Mensaje por cacharreo »

¿Podría ser que el compilador no encontrara la librería (raro si funciona con el LCD 1602) o que debido a una directiva de compilación condicional (p.e. #ifdef LCDSCREEN16x2 ...) se ignore declaración de la clase y de ahí que no tenga definido ese tipo?

Por otra parte también puede dar problemas que la dirección I2C (lcd_addr) del LCD 2004 no sea la misma (p.e. 0x3F) que la del LCD 1602 (0x27) y en el código citado no se ve la asignación del valor de la constante LCD_I2C_ADDR.
© cacharreo
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6355
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 114 times
Been thanked: 316 times
Contactar:

Re: Probando el TZXDuino

Mensaje por merlinkv »

Estoy convencido de que debe ser alguna chorrada, pero de momento he revisado todas las directivas en las que defino LCD16 y LCD20 por separado y conjuntas (LCD16 || LCD20) y no veo nada erróneo.

Respecto a la dirección del LCD 20x4 es 0x27, seguro al 100%.

En fin, seguiré revisando el código a ver si doy con ello ....
No sé como será la tercera Guerra Mundial. Pero sí sé como será la cuarta: Con palos y piedras.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
Avatar de Usuario
overCLK !CPC 4
Demonio segundo orden
Demonio segundo orden
Mensajes: 1709
Registrado: 14 Ago 2015, 09:28
Ubicación: Vedra
Has thanked: 3 times
Been thanked: 4 times

Re: Probando el TZXDuino

Mensaje por overCLK »

merlinkv escribió: 19 Sep 2022, 20:23 Estoy convencido de que debe ser alguna chorrada, pero de momento he revisado todas las directivas en las que defino LCD16 y LCD20 por separado y conjuntas (LCD16 || LCD20) y no veo nada erróneo.

Respecto a la dirección del LCD 20x4 es 0x27, seguro al 100%.

En fin, seguiré revisando el código a ver si doy con ello ....
Una cosa que a mí a veces me ha servido es ver la salida del preprocesador a ver como se están expandiendo las macros y qué se está definiendo y qué no.
La idea es más o menos ver el comando de compilación en el IDE y ejecutarlo a mano, cambiando lo que suele ser "-o ficheroSalida" por "-E ficheroSalida". De este modo en el ficheroSalida puedes ver lo que está generando el preprocesador.
Imagen
Avatar de Usuario
Troopa jr
Le gustan las llamas
Le gustan las llamas
Mensajes: 88
Registrado: 02 Nov 2018, 22:07
Has thanked: 24 times
Been thanked: 13 times
Contactar:

Re: Probando el TZXDuino

Mensaje por Troopa jr »

merlinkv escribió: 19 Sep 2022, 20:23 Estoy convencido de que debe ser alguna chorrada, pero de momento he revisado todas las directivas en las que defino LCD16 y LCD20 por separado y conjuntas (LCD16 || LCD20) y no veo nada erróneo.

Respecto a la dirección del LCD 20x4 es 0x27, seguro al 100%.

En fin, seguiré revisando el código a ver si doy con ello ....
en el fichero de config donde has descomentado la línea "#define LCDSCREEN16x2 ", asegúrate de tener comentada "//#define OLED1306 "
no sé si será el caso, o si lo habréis hablado ya por aquí, pero recuerdo tener un error parecido cuando lo grabé

espero que sea de utilidad
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6355
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 114 times
Been thanked: 316 times
Contactar:

Re: Probando el TZXDuino

Mensaje por merlinkv »

Troopa jr escribió: 30 Sep 2022, 17:37en el fichero de config donde has descomentado la línea "#define LCDSCREEN16x2 ", asegúrate de tener comentada "//#define OLED1306 "
no sé si será el caso, o si lo habréis hablado ya por aquí, pero recuerdo tener un error parecido cuando lo grabé

espero que sea de utilidad
Hola Troopa jr,

Gracias,

No, es que se han perdido mensajes cuando se cayó el foro estos días. Ya lo soluciné, era algo tan tonto como que en una línea puse

#ifdef LCD16 || LCD20

Cuando debía haber puesto

#if defined(LCD16) || defined(LCD20)

Muchas gracias de todas formas. :)
No sé como será la tercera Guerra Mundial. Pero sí sé como será la cuarta: Con palos y piedras.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
Responder

Volver a “Proyectos de hardware abiertos”