CArGANDO LECHES

Aquí solo proyectos que incluyan el código fuente

Moderador: Fundadores

Reglas del Foro
Si no se incluyen los fuentes, se debe usar el foro de proyectos de software generales
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: CArGANDO LECHES

Mensaje por antoniovillena »

yombo escribió: Pues sí, he modificado cosas, te lo indico más abajo. En cuanto a la velocidad, ¿El 3 a qué equivale en el menú de la web (Safer/Reckless etc)?
A la Safer más rápida, que es 17640bps a 44100Hz o bien 19200bps a 48000Hz. La cuenta es sencilla, dividir la frecuencia de muestreo entre un divisor, que por orden de velocidad es: 4 | 3.5 | 3 | 2.5 | 3.25 | 2.75 | 2.25 | 1.75 (de 0 a 7 respectivamente)
yombo escribió: Es para comparar lo que genera el programa compilado por mi y el generado por web.
El generado por la web es un formato distinto de la antigua versión de CargandoLeches. Va a sonar igual pero cambian algunas cosas por lo que es incompatible.
yombo escribió: Mi .wav generado tiene algunos silencios que no se oyen en los generados por la web (parece que hay tres bloques, uno diminuto, uno pequeño y uno grande)
El programa web en lugar de silencios mete tonos guía, pero son equivalente a los silencios. Creo en la web fui más agresivo, por lo que los silencios (en forma de tonos guía) son más cortos.
yombo escribió: Puedes mirar a ver si te carga? Está aquí → https://drive.google.com/file/d/0B4WEXG ... sp=sharing
(Edit: Hay, leches! Si lo puedo probar yo en emulador)
Sí, lo he probado en emulador (Spectaculator) y funciona.
yombo escribió: Lo que he modificado es (solo he modificado CgLeches.c. El leches.c compila sin más):

- Lo primero, compilo con:
gcc ./leches.c -o leches
gcc ./CgLeches.c -o CgLeches -std=c99

El parametro -std=c99 es para que pille la declaración dentro del bucle for [ for (int i =... ]

- El define de la funcion strcasecmp lo he cambiado a:
#define strcasecmp strcmp

Ya que no hay equivalente de stricmp. Y he comentado el #if

- He añadido el #include <stdlib.h>

- En la creación de la cadena del comando he puesto el indicador de directorio actual ./
"./leches %d ...
También he quitado el > nul

- Y lo más gordo, he quitado el if del system(command), ahora no se comprueba si el resultado de ejecutar 'leches' es correcto. Esto lo he hecho porque no había manera de que me devolviera 0, quizá por cosas del Linux.
Muchas gracias.
yombo escribió: Las EEPROM y un zócalo zif para hacer el programador están en camino :|
¿Es que no tienes programador? ¿Qué esquema vas a usar de programador? Yo para programar uso uno de estos chinorros, al principio usé el TOP853 y ahora tengo uno que se llama TL866, nunca me han dado problemas.
Avatar de Usuario
yombo
Demonio tercer orden
Demonio tercer orden
Mensajes: 737
Registrado: 01 Ago 2014, 21:21

Re: CArGANDO LECHES

Mensaje por yombo »

antoniovillena escribió: Sí, lo he probado en emulador (Spectaculator) y funciona.
Perfecto! Yo también lo acabo de probar en fuse y va genial. Y qué bonitos los colores de carga del borde :-]
antoniovillena escribió:
yombo escribió: Lo que he modificado es (solo he modificado CgLeches.c. El leches.c compila sin más):

- Lo primero, compilo con:
gcc ./leches.c -o leches
gcc ./CgLeches.c -o CgLeches -std=c99

El parametro -std=c99 es para que pille la declaración dentro del bucle for [ for (int i =... ]

- El define de la funcion strcasecmp lo he cambiado a:
#define strcasecmp strcmp

Ya que no hay equivalente de stricmp. Y he comentado el #if

- He añadido el #include <stdlib.h>

- En la creación de la cadena del comando he puesto el indicador de directorio actual ./
"./leches %d ...
También he quitado el > nul

- Y lo más gordo, he quitado el if del system(command), ahora no se comprueba si el resultado de ejecutar 'leches' es correcto. Esto lo he hecho porque no había manera de que me devolviera 0, quizá por cosas del Linux.
Muchas gracias.
De nada :)
antoniovillena escribió:
yombo escribió: Las EEPROM y un zócalo zif para hacer el programador están en camino :|
¿Es que no tienes programador? ¿Qué esquema vas a usar de programador? Yo para programar uso uno de estos chinorros, al principio usé el TOP853 y ahora tengo uno que se llama TL866, nunca me han dado problemas.
No tengo programador. Para encontrar uno chino que vaya en Linux tela, así que lo haré y programaré yo (con puerto serie por el USB).
Para hacérmelo voy a usar un microcontrolador Atmel 1284P de 40 patillas, que puede direccionar la EEPROM y escribir al bus de datos todo a la vez. Ése y el 328P, de 28 pins, son los que más uso.
Imagen
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: CArGANDO LECHES

Mensaje por antoniovillena »

Ya he trasladado los cambios (para que compile en Linux) al repositorio. Lo del programador lo veo un coñazo, a mi me pasa al revés, uso Windows pero cuando necesito algo de Linux echo mano de la Raspberry. Podrías hacer algo parecido, tener un netbook con Windows para casos imposibles como este (para todo lo demás supongo que con wine+Linux te bastará).
Avatar de Usuario
yombo
Demonio tercer orden
Demonio tercer orden
Mensajes: 737
Registrado: 01 Ago 2014, 21:21

Re: CArGANDO LECHES

Mensaje por yombo »

antoniovillena escribió:Ya he trasladado los cambios (para que compile en Linux) al repositorio. Lo del programador lo veo un coñazo, a mi me pasa al revés, uso Windows pero cuando necesito algo de Linux echo mano de la Raspberry. Podrías hacer algo parecido, tener un netbook con Windows para casos imposibles como este (para todo lo demás supongo que con wine+Linux te bastará).
Sí que podría, sí, de hecho tengo el portátil con Windows y el Xilinx ISE para el programador de CPLD y FPGA. Pero también tiene su qué el hacérselo uno mismo.

Gracias por actualizarlo. En la llamada a system(command), yo quité la comprobación del valor devuelto porque siempre devolvía 1 aunque yo veía que se generaba el tap temporal.

P.D. Cómo mola lo de "Error: leches not found" :)) :D
Imagen
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: CArGANDO LECHES

Mensaje por antoniovillena »

yombo escribió: Sí que podría, sí, de hecho tengo el portátil con Windows y el Xilinx ISE para el programador de CPLD y FPGA. Pero también tiene su qué el hacérselo uno mismo.
Te entiendo, a mí también me gustan los retos.
yombo escribió: Gracias por actualizarlo. En la llamada a system(command), yo quité la comprobación del valor devuelto porque siempre devolvía 1 aunque yo veía que se generaba el tap temporal.
Puede ser porque no tenías el include a stdlib. Yo lo he probado en la Raspberry y funciona bien, por eso no he quitado la comprobación.
yombo escribió: P.D. Cómo mola lo de "Error: leches not found" :)) :D
Mientras lo lea un inglés no hay problema. Es lo que ocurre al quitar el .exe.
Avatar de Usuario
yombo
Demonio tercer orden
Demonio tercer orden
Mensajes: 737
Registrado: 01 Ago 2014, 21:21

Re: CArGANDO LECHES

Mensaje por yombo »

Pues nada muchas gracias y a cruzar los dedos pa ver si funciona en el Harlequín, que seguro que sí.
Imagen
Avatar de Usuario
yombo
Demonio tercer orden
Demonio tercer orden
Mensajes: 737
Registrado: 01 Ago 2014, 21:21

Re: CArGANDO LECHES

Mensaje por yombo »

Otra cosilla más, lo del pulsador para NMI. Cuando pulsas tiene que dar 0 ó 5V? No encuentro esa info.

Seguramente haré el botón en un interface que estoy ideando, muy sencillo, que sólo va a usar los dos puertos A7,A6 = 01 y 10
Imagen
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: CArGANDO LECHES

Mensaje por antoniovillena »

yombo escribió:Otra cosilla más, lo del pulsador para NMI. Cuando pulsas tiene que dar 0 ó 5V? No encuentro esa info.

Seguramente haré el botón en un interface que estoy ideando, muy sencillo, que sólo va a usar los dos puertos A7,A6 = 01 y 10
0V

Todas las señales del Z80 son a nivel bajo, por lo que activas valen 0. También tienes que currarte un circuito antirrebotes, lo más sencillo es una red RC.
Avatar de Usuario
yombo
Demonio tercer orden
Demonio tercer orden
Mensajes: 737
Registrado: 01 Ago 2014, 21:21

Re: CArGANDO LECHES

Mensaje por yombo »

antoniovillena escribió:
yombo escribió:Otra cosilla más, lo del pulsador para NMI. Cuando pulsas tiene que dar 0 ó 5V? No encuentro esa info.

Seguramente haré el botón en un interface que estoy ideando, muy sencillo, que sólo va a usar los dos puertos A7,A6 = 01 y 10
0V

Todas las señales del Z80 son a nivel bajo, por lo que activas valen 0. También tienes que currarte un circuito antirrebotes, lo más sencillo es una red RC.
Ok, sí, normalmente cuando hago un botón para algún circuito lo hago a nivel bajo, o sea que me viene de perlas, ya me lo sé de memoria. Lo pongo para futuras referencias:

Del pin NMI (B14 en el bus de expansión) se lleva a un punto donde se conectan:
-Una resistencia de 10K a alimentación
-Un condensador de 4.7 uF a masa
-El pulsador, a masa

El pin estará a 1 cuando el pulsador esta suelto, y a 0 cuando esté pulsado.
Imagen
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: CArGANDO LECHES

Mensaje por antoniovillena »

yombo escribió: Ok, sí, normalmente cuando hago un botón para algún circuito lo hago a nivel bajo, o sea que me viene de perlas, ya me lo sé de memoria. Lo pongo para futuras referencias:

Del pin NMI (B14 en el bus de expansión) se lleva a un punto donde se conectan:
-Una resistencia de 10K a alimentación
-Un condensador de 4.7 uF a masa
-El pulsador, a masa

El pin estará a 1 cuando el pulsador esta suelto, y a 0 cuando esté pulsado.
Perfecto, ya veo que lo tienes controlado.
Responder

Volver a “Proyectos de software abiertos”