-
Notifications
You must be signed in to change notification settings - Fork 1
Home
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
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
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
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!
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")