Página 37 de 125

Re: Probando el TZXDuino

Publicado: 19 Nov 2017, 23:58
por rcmolina
Hola Natalia,

Sí, este fin de semana he podido dedicarle un poco más de lo habitual :-] y compensar unos temillas familiares días atrás.
nataliapc escribió: 19 Nov 2017, 21:15 Madre mía que velocidad!!
...si lo he programado esta mañana! xD

Gracias @rcmolina :)

Re: Probando el TZXDuino

Publicado: 20 Nov 2017, 12:02
por nataliapc
@acf76es lo importante es que teniendo ya una implementación completa del bloque 4B en TZXDuino/MaxDuino se pueden incorporar en los ficheros TSX los datos, no ya solo de los MSX, si no de cualquier ordenador que usara Kansas City Standard (KCS para los amigos).

Todo depende de cómo se configure la cabecera del bloque 4B, en especial sus últimos dos bytes, ya que antes estaban fijos a los valores 0x24 0x54 que son los que describen los bloques MSX.

Re: Probando el TZXDuino

Publicado: 21 Nov 2017, 20:49
por rcmolina
Maxduino v1.20c

+ Optimizaciones en el menú para ahorrar espacio: cambios en la selección de los parámetros de máscara y speedup: sólo es necesario el botón play para conmutar entre ON y off.

http://filecloud.io/69keu7srx

Re: Probando el TZXDuino

Publicado: 22 Nov 2017, 11:13
por Spirax
gracias @rcMolina

esto va tomando forma :)
tu logo es muy chulo ;)

hay varias cositas que hay que seguir afinando.
varias de ellas con la fuente doble, para que no de problemas al compilarlo para otras pantallas que no sean OLED. Me he dado cuenta al reproducir ficheros no soportados que usando la fuente doble salian los errores en medio de la linea.

En el fichero Maxduino.ino sacar las deficiniones de XY y XY2 fuera del #Ifdef OLED ya que se necesitan tambien para LCD y otros ficheros.

#ifdef XY
byte lineaxy=1;
#endif
#ifdef XY2
byte lineaxy=2;
#endif

al generalizarlas ya no se necesitan otra vez en el menu.ino


en el fichero Maxprocesing.ino
hay que cambiar tres lineas para que usen la variable lineaxy en vez de fijar la impresion en linea 1, no lo vi antes porque solo se utilizan en errores,

En funcion void TZXProcess() {

CAMBIAR el 1
itoa(bytesRead,PlayBytes,16);strcat_P(PlayBytes,PSTR(" - L: "));printtext(PlayBytes,1);
itoa(loopCount,PlayBytes,10);sendStrXY(PlayBytes,10,1);

POR lineaxy
itoa(bytesRead,PlayBytes,16);strcat_P(PlayBytes,PSTR(" - L: "));printtext(PlayBytes,lineaxy);
itoa(loopCount,PlayBytes,10);sendStrXY(PlayBytes,10,lineaxy);

*************
en funcion void ReadTZXHeader()

CAMBIAR el 1
printtextF(PSTR("Not TZXTape"),1);

POR 0
printtextF(PSTR("Not TZXTape"),0);

*************

Creo que he encontrado un bug, que ocurre cuando se intenta reproducir un fichero no reconocido....
ejecuta la impresion de NOT TZX y supuestamente se para al ejecutar TZXStop (), pero aparecen los contadores como si empezara a reproducir el fichero.
lo he solucionado añadiento la linea start =0; en la funcion TZXStop pero no se si es el metodo correcto de hacerlo,
alguno lo podeis confirmar para añadir este cambio?


en funcion void TZXStop()

AÑADIR despues de isStopped=true;
start = 0;

*************

he detectado otro compartamieno anomalo respecto al TZXDuino que era el que usaba antes.
al pulsar el play suena un pitido hasta que sueltas el boton y empieza a reproducir.
no afecta al funcionamiento pero aun no he encontrado por que se produce.


*************
No es exactamente un bug pero se podria dar otra vuelta de tuerca al menu, aunque yo no lo uso (jejeje ya que uso la fuente doble y desactivo la linea de estatus)

en el nuevo menu, no se actualiza la linea de status al cambiar una opcion solo al salir del menu.
por ejemplo si en el status tienes la velocidad a 3600,
la cambias a 1200 y si sigues navegando por las opciones del menu sigue poniendo 3600 y solo se actualiza al salir del menu.
creo que se podria poner OledStatusLine (); al salir de cada opcion para que se actualize?


Muchas gracias
Saludos

Re: Probando el TZXDuino

Publicado: 22 Nov 2017, 21:06
por rcmolina
Creo que no me he dejado nada, seguimos en la 1.20c: (he actualizado el link anterior)

http://filecloud.io/69keu7srx

Ps. Respecto a lo del "comportamiento anómalo" del tono inicial, para mí es una seña de identidad :|
Al principio fue un bug, pero lo he dejado porque me gusta, me gustaría mantenerlo. Si hay presión o produce errores, pues no te digo que no (yo no los he detectado).
Me recuerda a los antiguos copiones y alimenta mi nostalgia. :P

Re: Probando el TZXDuino

Publicado: 23 Nov 2017, 00:30
por TOMASIUS
rcmolina escribió: 22 Nov 2017, 21:06 Creo que no me he dejado nada, seguimos en la 1.20c: (he actualizado el link anterior)

http://filecloud.io/iqfr4z7ue

Ps. Respecto a lo del "comportamiento anómalo" del tono inicial, para mí es una seña de identidad :|
Al principio fue un bug, pero lo he dejado porque me gusta, me gustaría mantenerlo. Si hay presión o produce errores, pues no te digo que no (yo no los he detectado).
Me recuerda a los antiguos copiones y alimenta mi nostalgia. :P
Pues a mi me lo ha dejado frito ... salen un montón de cuadraditos en pantalla y no hace caso a los botones ... voy a volver a alguna versión anterior :?

Re: Probando el TZXDuino

Publicado: 23 Nov 2017, 07:04
por rcmolina
@TOMASIUS, gracias por las pruebas. Dame datos por favor de tu hw y configuración. Yo lo he probado con ambas pantallas OLED y LCD antes de subirlo y no me ha dado problemas. Deduzco que tienes OLED por lo de los cuadraditos, típico de un problema de punteros posible problema en la rutina printtextF (la 1.18 no tiene los ultimos cambios)

¿qué versión de la IDE estás usando? yo la 1.8.1

¿cual era la versión anterior, que funcionaba, desde la que has actualizado? ¿te funcionaba la anterior 1.20b?

1.20b: http://filecloud.io/u69he1m5x
1.20a: https://mega.nz/#!mV0GWACK!JfFySIxOdyoy ... 3D3znvz1P8
1.19: http://filecloud.io/dy29nj0ra
1.18: http://filecloud.io/25n1yei80

Al menos hay que revisar dos configuraciones en la pestaña MaxDuino_v1.20c antes de subirlo (confírmanos que está todo correcto) :

1.- Configuración LED/OLED: en la pestaña MaxDuino_v1.20c (antiguamente lo dejaba en LCDSCREEN16x2)

//Set defines for various types of screen, currently only 16x2 I2C LCD is supported
//#define SERIALSCREEN 1
//#define LCDSCREEN16x2 1
#define OLED1306 1
//#define P8544 1

2.- Dirección de la pantalla en caso de LCD:

#ifdef LCDSCREEN16x2
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display

Re: Probando el TZXDuino

Publicado: 23 Nov 2017, 10:05
por spark2k06
rcmolina escribió:@TOMASIUS, gracias por las pruebas. Dame datos por favor de tu hw y configuración. Yo lo he probado con ambas pantallas OLED y LCD antes de subirlo y no me ha dado problemas. Deduzco que tienes OLED por lo de los cuadraditos, típico de un problema de punteros posible problema en la rutina printtextF (la 1.18 no tiene los ultimos cambios)

¿qué versión de la IDE estás usando? yo la 1.8.1

¿cual era la versión anterior, que funcionaba, desde la que has actualizado? ¿te funcionaba la anterior 1.20b?

1.20b: http://filecloud.io/u69he1m5x
1.20a: https://mega.nz/#!mV0GWACK!JfFySIxOdyoy ... 3D3znvz1P8
1.19: http://filecloud.io/dy29nj0ra
1.18: http://filecloud.io/25n1yei80

Al menos hay que revisar dos configuraciones en la pestaña MaxDuino_v1.20c antes de subirlo (confírmanos que está todo correcto) :

1.- Configuración LED/OLED: en la pestaña MaxDuino_v1.20c (antiguamente lo dejaba en LCDSCREEN16x2)

//Set defines for various types of screen, currently only 16x2 I2C LCD is supported
//#define SERIALSCREEN 1
//#define LCDSCREEN16x2 1
#define OLED1306 1
//#define P8544 1

2.- Dirección de la pantalla en caso de LCD:

#ifdef LCDSCREEN16x2
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
Una pregunta/idea... esos dos puntos de configuración no podrían ser detectados de alguna manera durante la inicialización y usar el que se detecte? Si bien entiendo que esto se podría traducir en una disminución importante de los recursos disponibles en el AVR e igual no es posible.

Si la detección no fuese posible pero sí tenemos los recursos suficientes, la información sobre el tipo de display también podría almacenarse en la EEPROM, de manera que la gente no se tenga que preocupar de configurar los fuentes a su modelo, solo compilar y flashear a partir de un código común.

Como digo, supongo que todo dependerá de los recursos disponibles.

Enviado desde mi Thor mediante Tapatalk





Re: Probando el TZXDuino

Publicado: 23 Nov 2017, 10:29
por Spirax
hola.

confirmo que la nueva version subida por @rcmolina.
compila y funciona perfectamente en mi Oled sin tocar nada (el oled lo tengo con un arduino nano)
las opciones por defecto son: oled configurado en address 0x3C, con configuracion original de letras (4 lieas) y el logo de rcmolina.

he probado las lineas XY2 y compila y funciona perfectamente en dos lineas con fuente doble.

tambien tengo un lcd con un arduino pro mini
he cambiado las opciones de pantalla.
osea he comentado la linea de oled y descomentado la linea del LCDSCREEN16x2
y para mi lcd tengo que configurar la address en 0x27
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display

compilar y tambien funciona OK.

por cierto gracias @rcmolina.
los cambios en el menu funcionan bien y ya cambia la linea de status al cambiar las opciones :) , y ahora ya no inicia los contadores al reproducir un fichero no reconocido. :)

@spark2k06
lo que sugieres no es posible, ya que el compilador que es el que crea el codigo y lo sube a la memoria del arduino no puede saber lo que tienes instalado en el arduino a no ser que se lo definas al compilar.
para hacer lo que sugieres, el arduino tendria que tener compiladas todas las librerias del display para detectar y usar la que necesite y eso con la poca memoria de los arduinos es imposible.
el echo de que tengamos que modificar las opciones del hardware que tenemos cada uno a la hora de compilar es lo que hace que sea un sistema abierto y facil para todos :)
pero claro cada uno tiene que saber lo que tiene y saber que opciones tiene que usar.

ah. se me olvidaba
mi ide por defecto es el 1.8.5

EDITO:
para no publicar otra vez, edito este post para colgar una fotillo.
ya terminé mi version con el oled. (por si alguien pregunta es una cajita de una RP Zero que tenia por aqui sin usar)
ya colgue anteriormente el lcd, os dejo en esta fotillo, los dos juntos para comparar el tamaño :D

Imagen

Re: Probando el TZXDuino

Publicado: 23 Nov 2017, 10:53
por TOMASIUS
rcmolina escribió: 23 Nov 2017, 07:04 @TOMASIUS, gracias por las pruebas. Dame datos por favor de tu hw y configuración. Yo lo he probado con ambas pantallas OLED y LCD antes de subirlo y no me ha dado problemas. Deduzco que tienes OLED por lo de los cuadraditos, típico de un problema de punteros posible problema en la rutina printtextF (la 1.18 no tiene los ultimos cambios)

¿qué versión de la IDE estás usando? yo la 1.8.1

¿cual era la versión anterior, que funcionaba, desde la que has actualizado? ¿te funcionaba la anterior 1.20b?

1.20b: http://filecloud.io/u69he1m5x
1.20a: https://mega.nz/#!mV0GWACK!JfFySIxOdyoy ... 3D3znvz1P8
1.19: http://filecloud.io/dy29nj0ra
1.18: http://filecloud.io/25n1yei80

Al menos hay que revisar dos configuraciones en la pestaña MaxDuino_v1.20c antes de subirlo (confírmanos que está todo correcto) :

1.- Configuración LED/OLED: en la pestaña MaxDuino_v1.20c (antiguamente lo dejaba en LCDSCREEN16x2)

//Set defines for various types of screen, currently only 16x2 I2C LCD is supported
//#define SERIALSCREEN 1
//#define LCDSCREEN16x2 1
#define OLED1306 1
//#define P8544 1

2.- Dirección de la pantalla en caso de LCD:

#ifdef LCDSCREEN16x2
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
Hola,

Es una pantalla OLED.

esta tarde cuando llegue a casa compruebo el código y vuelvo a compilar y subir. La versión IDE de Arduino (pero casi seguro que es la 1.8.1 dede OSX) y creo que sustituí una CASDUINO 1.17, ya que estoy probando cual me puede ir mejor con MSX.