Skip to content
Juan Gonzalez-Gomez edited this page Nov 18, 2019 · 39 revisions

LOG

Viernes, 25-Oct-2019

Voy a empezar a implementar bloques para realizar entrada/salida directamente desde los circuitos hardware. Cómo molaría tener una consola, con comandos, que esté implementandad totalmente en hardware 😄

Estos bloques además, permitirán depurar los circuitos más fácilmente

Vamos a partir del bloque serie de la colección Jedi. Para nosotros será una máquina básica, cuya función es la de transmitir un byte por el puerto serie. Como lo voy a tratar como una máquina, voy a modificar el compoente de la colección Jedi para darle el look de máquina

Sábado, 27-Oct-2019

Ya tengo el bloque putc-bit, para enviar el estado de un bit. Voy a hacer la versión transparente (TC: Transparent channel) que permite encadenarlos. He hecho pruebas con caracteres normales y la cosa funciona bastante bien :-)

El componente putc-bit-TC también está listo. on este componente ya se puede hacer una "tabla de verdad" cutre, que aparezca bien muestreando a una frecuencia fija, o bien cuando hay un cambio en las entradas

Sábado, 02-Nov-2019

El putc-bit (-TC) está funcionando muy bien. Ahora hay que permitir que se pueda enviar un carácter cualquiera Putc-char: ejemplo 2 hecho: Imprimir el estado del pulsador y un /n al final... OK!

Para probarlo con el tio hay que ejecutar esta línea:

tio -m INLCRNL /dev/ttyUSB1

El ejemplo 2 funciona muy bien directamente desde el terminal. Para configurarlo hay que poner:

stty -F /dev/ttyUSB1 raw ispeed 115200 ospeed 115200 cs8 -ignpar -cstopb -echo

Y luego con sólo hacer:

cat /dev/ttyUSB1

ya vemos lo que nos envía la placa :-) ¡¡Mola!!!

Ejemplo 3: puerta not. Se muestrean la entrada y la salida cada 100ms

Miércoles, 06-Nov-2019

Ejemplo 4 del Putc-char listo: tabla de verdad de la puerta not. Se envía el estado de la entrada y la salida cada vez que hay un cambio en el estado de la entrada

Putc-char-TC: Ejemplo 1 y 2 listos!

Jueves, 07-Nov-2019

Ya tengo los ejemplos 3 y 4 de Putc-char-TC. Funcionan muy bien! :-) He hecho el ejemplo de monitorizar una puerta NOT, y va de lujo

Lo siguiente será meter el componente para las cadenas, que es super importante: PRINT!

¡Ya tengo una primera versión del bloque de Print! Voy a hacer algunons ejemplos

Para pasar de texto a ASCII se puede usar esta línea en python:

print(" ".join(["{:02X}".format(ord(i)) for i in "Mi cadena de texto"]) + " 00")

Viernes, 08-Nov-2019

Ejemplos a hacer:

  • Ejemplo 1: Imprimir dos cadenas, una al apretar el pulsador 1 y otra al apretar el 2 (OK)
  • Ejemplo 2: Lo mismo pero con ASCII ART (OK)
  • Ejemplo 3: Pantalla con mensaje inicial, al hacer reset: "HW STDIO...". Con el pulsador SW1 se cambia el estado de un LED (toggle) y se imprime la cadena OK!. Con el pulsador SW2 se imprime el estado actual del LED: ON u OFF

Para hacer pruebas con el terminal hw de entrada, se puede probar el ejemplo 3 pero usando la tecla r para "Leer" el estado del LED. Luego ampliarlo con otras teclas para cambiar las entradas

Para los mensajes en ARTE ASCII estoy usando este enlace: http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20

Domingo, 17-Nov-2019

Ya tengo listo el bloque Getc-bit para recibir bits. Funciona muy bien!

TODO: Ejemplo 2 del getc-bit: Encender y apagar dos leds con 0,1 y 's' y 'n' TODO: InputLn-bit: para introducir un bit, con edición

Lunes, 18-Nov-2019

Ejemplo 2 del getc-bit Listo! Se encienden y apagan los leds con 0,1 y 's' y 'n'

TODO: Ejemplo 3 del getc-bit: Pregunta inicialmente por el encendido de un circuito de prueba

TODO: Input-bit: para introducir un bit, con o sin eco. Es necesario porque hay que gestionar la habilitación o no de los receptores. Así, el receptor se convierte también en una máquina

Clone this wiki locally