Página 24 de 29

#461 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 03 Mar 2021 14:21
por droman
merlinkv esta mañana estoy un poco espeso, lo siento, ese código que he puesto, que funciona seguro, se puede optimizar de la manera más tonta.

Código: Seleccionar todo

	#ifdef LCD16
            String filename2 = fileName;
            lcd.setCursor(0,0); lcd.print("                ");
            lcd.setCursor(0,0); lcd.print(filename2.substring(0,16)); 
            lcd.setCursor(0,1); lcd.print("Playing         ");    // Unimos las lineas de espacios de borrado con el texto.
         #endif 
         #ifdef LCD20
            String filename2 = fileName;
            lcd.setCursor(0,0); lcd.print("                    ");
            lcd.setCursor(0,0); lcd.print(filename2.substring(0,20));
            lcd.setCursor(0,1); lcd.print("Playing             "); // Unimos las lineas de espacios de borrado con el texto.
         #endif 
Con esta tontería de actulización nos ahorramos dos refrescos de pantalla que tanto latazo dan. Perdón por no haberlo visto antes.

#462 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 03 Mar 2021 15:38
por merlinkv
Hola droman

Prueba mejor con ésto:

Código: Seleccionar todo

         #ifdef LCD16
            String filename2 = fileName;
            lcd.setCursor(0,0); lcd.print("                ");
            lcd.setCursor(0,0); lcd.print(filename2.substring(0,16));
            lcd.setCursor(0,1); lcd.print("                ");                     
            lcd.setCursor(0,1); lcd.print("Playing");
            lcd.setCursor(9,1); lcd.print(newpct); lcd.print("%");
            lcd.setCursor(14,1); lcd.print("000");
            if (lcdsegs % CNTRBASE != 0){itoa(lcdsegs%CNTRBASE,PlayBytes,10);lcd.setCursor(15,1);lcd.print(PlayBytes);} // // recálculo de decenas ... 10,20,30,40,50,60,70,80,90,110,120,..
              else 
                if (lcdsegs % (CNTRBASE*10) != 0) {itoa(lcdsegs%(CNTRBASE*10)/CNTRBASE*100,PlayBytes,10);lcd.setCursor(14,1);lcd.print(PlayBytes);} // recálculo de centenas ... 100,200,300,400,500,600,700,800,900,1100, ...
           lcdsegs++;                
         #endif 
         #ifdef LCD20
            String filename2 = fileName;
            lcd.setCursor(0,0); lcd.print("                    ");
            lcd.setCursor(0,0); lcd.print(filename2.substring(0,20));
            lcd.setCursor(0,1); lcd.print("                    ");            
            lcd.setCursor(0,1); lcd.print("Playing");
            lcd.setCursor(11,1); lcd.print(newpct); lcd.print("%");
            lcd.setCursor(17,1); lcd.print("000");
            if (lcdsegs % CNTRBASE != 0){itoa(lcdsegs%CNTRBASE,PlayBytes,10);lcd.setCursor(18,1);lcd.print(PlayBytes);} // recálculo de decenas ... 10,20,30,40,50,60,70,80,90,110,120,..
              else 
                if (lcdsegs % (CNTRBASE*10) != 0) {itoa(lcdsegs%(CNTRBASE*10)/CNTRBASE*100,PlayBytes,10);lcd.setCursor(17,1);lcd.print(PlayBytes);} // recálculo de centenas ... 100,200,300,400,500,600,700,800,900,1100, ...
           lcdsegs++;
         #endif
Quedarían como líneas 833 a 858.

:hola1:

#463 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 03 Mar 2021 18:47
por droman
Podió que pofessioná... lo miro esta tarde que me tienen que dejar el ordena... sin simular un infarto...

#464 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 03 Mar 2021 19:01
por merlinkv
droman escribió: 03 Mar 2021 18:47Podió que pofessioná...
:carcajada1: :carcajada1: :carcajada1:

Ya quisiera yo. :sarcastico1:

No, lo que pasaba con la línea en blanco (al menos a mí) es que, no se recuperaban correctamente los contadores de %, las centenas y las decenas. Por eso los he puesto, como van sincronizados con la rutina general de reproducción, no se "pierden" vueltas ni porcentajes.

El problema de las LCD es que con 2 y 4 líneas a veces se complica el tema "visual" ... :sarcastico1: :sarcastico1:

Míralo cuando pueda y a ver qué te parece.

Las pruebas las estoy haciendo con un CPC6128 y ficheros CDT.

:beber1:

#465 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 03 Mar 2021 19:22
por merlinkv
Y si ves algún error o que puede quedar mejor, pls, dímelo.

:bien1:

#466 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 03 Mar 2021 19:38
por merlinkv
Acabo de ver que si en un equipo con Remote y con las LCD, pulsabas STOP y le dabas otra vez al Play ... no se recuperaba bien.

Un par de pequeños cambios ... quedan como líneas 635-653

Código: Seleccionar todo

if(digitalRead(btnStop)==LOW && start==1
  #ifdef btnRoot_AS_PIVOT
    && digitalRead(btnRoot)
  #endif
  ){      
  stopFile();
  debounce(btnStop);
  #ifdef LCD16
    lcd.setCursor(0,1); lcd.print("                ");  
  #endif  
  #ifdef LCD20
    lcd.setCursor(0,1); lcd.print("                    ");  
    LCDBStatusLine();
  #endif
  #ifdef OLED1306
    OledStatusLine();
  #endif     
  ltoa(filesize,PlayBytes,10);printtext(strcat_P(PlayBytes,PSTR(" bytes")),1);  
  }

#467 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 03 Mar 2021 20:12
por droman
merlinkv escribió: 03 Mar 2021 19:22 Y si ves algún error o que puede quedar mejor, pls, dímelo.

:bien1:
Hay un problema al mostrar el porcentaje... a veces. pone: Playing 1%% 001
Creo que habría que formatear la variable newpct para que tenga formato de 2 dígitos y evitar ese error, cuando llega a 10% se soluciona.

#468 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 03 Mar 2021 20:24
por merlinkv
¿Te has bajado lo último? .... Lo subí hace menos de una hora ....

Lo he vuelto a subir ahora ... :sarcastico1: :sarcastico1:

#469 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 03 Mar 2021 20:40
por droman
merlinkv escribió: 03 Mar 2021 20:24 ¿Te has bajado lo último? .... Lo subí hace menos de una hora ....

Lo he vuelto a subir ahora ... :sarcastico1: :sarcastico1:
Si, lo he visto así que he actualizado con lo tuyo y algo habría mal en el mío aún que ya está resuelto.
No, sigue saliendo el % dos veces en algunas ocasiones, siempre con porcentajes inferiores a 10.

Aún así, he eliminado dos líneas de tu código (que era una cagada mía) para que no haya tantos cambios en pantalla.
Basicamente he cambiado lo que te he comentado antes, dos líneas por 1 en cada pantalla.

Código: Seleccionar todo


//El ejemplo es para LCD20, para LCD16 es igual, pero con 16 espacios, logicamente
//Estas dos lineas
lcd.setCursor(0,1); lcd.print("                    ");
lcd.setCursor(0,1); lcd.print("Playing");

// Por esta línea
lcd.setCursor(0,1); lcd.print("Playing             ");

No es que vayas a tener sitio como para implementar salida HiFi... pero dos refrescos menos para la pantalla :)

#470 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 03 Mar 2021 20:46
por merlinkv
Buena idea, voy a ponerlo y veré si hay más líneas parecidas para cambiarlas.

#471 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 03 Mar 2021 20:53
por droman
Soy muy torpe. Intento hacer el formateo de la cadena, al final en 3 caracteres (000% -> 100%) pero no hay manera.

Código: Seleccionar todo

	char counter[4]="   ";   //inicializo con tres espacios en blanco, el último es para el \0
	sprintf(counter,"%03d",newpct);
Pero no consigo que rule como debe.

Tengo que dejarlo por ahora... la familia reclama comida con el cuello estirao cual pajaritos hambrientos y yo tendré que cocinar algo :furioso1:

#472 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 03 Mar 2021 20:59
por merlinkv
OK, tranqui, la familia es lo primero.

Un saludote.

:hola1:

#473 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 21 Mar 2021 19:48
por droman
Joé... ayer me llegó la pantalla OLED para ponerla en el MegaDuino y flipar.... Y VAYA QUE SI FLIPO!!! Me equivoqué y he pedido una de 0.93"... NO SE VE NAAAAAA jajajaja

Seguiremos con la LCD 20x4.




Hasta que me llegue la OLED de 50"... se va a cagal!

#474 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 21 Mar 2021 21:06
por merlinkv
Pues una 0.93 de 128x64, debería funcionar sin problemas. Comprueba la dirección de la pantalla que puede ser 0x3C o 0x3D.

Línea 69 de MEGA2560config.h

#define OLED_address 0x3C // 0x3C or 0x3D

También comprueba que SCL y SCA estén bien conectados.

#475 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 22 Mar 2021 17:18
por droman
merlinkv escribió: 21 Mar 2021 21:06 Pues una 0.93 de 128x64, debería funcionar sin problemas. Comprueba la dirección de la pantalla que puede ser 0x3C o 0x3D.

Línea 69 de MEGA2560config.h

#define OLED_address 0x3C // 0x3C or 0x3D

También comprueba que SCL y SCA estén bien conectados.
Espera que no me he explicado... verse se ve... PERO YO NO VEO NAAAAA ES MUY PEQUEÑO TODOOOOO jajajaja

#476 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 22 Mar 2021 17:46
por merlinkv
¡Ah, bueno! Que eres de Topolandia como yo .... :sarcastico1: :sarcastico1:

Yo normalmente lo uso con un OLED de 1.3" y hasta yo lo veo bien .... :sarcastico1: :sarcastico1:

#477 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 28 Mar 2021 15:22
por droman
He pedido un adaptador I2C para pantallas gráficas de 20 pines.

En cuanto lo tenga, no descarto hacerme un MegaDuinoPollatrón 1.0 con la pantalla de 128x64 retroiluminada en azul y blanco.

#478 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 16 Jul 2021 09:28
por droman
Una pregunta merlinkv Me preguntan en el foro del MSXVR, si el Megaduino y tiene soporte para Atari de 8bits.

:ayuda1:

#479 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 16 Jul 2021 10:51
por merlinkv
Hola droman.

Pues no tengo un Atari para poder confirmártelo, pero el MegaDuino está preparado para achivos CAS por lo que cualquier juego en ese formato debiera funcionar.

Lo que si te confirmo es que no está preparado para archivos del tipo ATR, XEX, A26 y otros.

Para crear los archivos CAS, mucha gente usa A8CAS

Un ejemplo de conversión : https://www.atarinside.com/blog/index.p ... -wav-file/

#480 Re: MegaDuino - MaxDuino basado en Mega2560 Pro Embed

Publicado: 27 Jul 2021 09:34
por merlinkv
Hola droman.

Yo uso un cable estéreo estándar tanto en el MegaDuino PM1.2 como en el PM 1.3 ... son dos cacharro exactamente iguales solo se diferencian en que en el segundo eliminé los conectores ICSP y puse las resistencia y condensadores como SMD.

Mira el esquema del conector de Audio y remote por si te sirve. La idea es que se pueda conectar un cable estéreo o mono indistintamente.

Aquí está todo el "cotarro" ... muy sencillito.


Imagen


:hola1: