Paso 4: El Firmware
El estándar de bosquejo TinyBASIC Plus tuvo que ser modificado con el fin de crear un sistema independiente. La versión sin modificar de TinyBASIC Plus utiliza el puerto serial del AVR para permitir a los usuarios interactuar con el software y crear programas. Importados a la biblioteca de TVout y me sustituye todas las llamadas de salida serie (Serial.write(), etc) con llamadas de TVout (TV.print() etc). La biblioteca estándar de teclado PS/2 enfrentamientos con TVout causando salida de extraños para ser mostrado en la TV y el teclado no se lee correctamente, pero después de algunas investigaciones, encontré una biblioteca denominada PS2uartKeyboard que utiliza el XCK0 pin y pin RX0 de un AVR para conectar al teclado para permitir un teclado PS/2 trabajar con la biblioteca de TVout. Esta biblioteca se puede encontrar aquí en la parte inferior de la página:
https://code.Google.com/p/Arduino-TVout/issues/detail?id=38
(Enlace biblioteca real aquí)
He probado la PS2uartKeyboard biblioteca y la biblioteca de TVout juntos y funcionaba bien así que añadido a la biblioteca de PS2uartKeyboard el dibujo TinyBASIC Plus que resultó en la creación de un sistema de computadora de trabajo autónomo. Las llamadas seriales que leer entrada serial TinyBASIC Plus fueron reemplazadas con teclado llamadas para leer la entrada de teclado. Como la biblioteca de TVout, la biblioteca de PS2uartKeyboard y bosquejo TinyBASIC Plus se ejecutan en el mismo AVR, la computadora requiere solamente un solo chip (un AVR) para funcionar. Empecé TVout mediante la siguiente línea:
TV.begin (PAL, 720, 480);
que comienza TVout a una resolución mayor que el valor por defecto para que se ajuste de la salida de texto de TinyBASIC Plus en una sola línea como en la resolución por defecto, algunas de las envolturas de texto a la línea siguiente. Tenga en cuenta, aquí no se genera una resolución de 720 x 480 como se divide hacia abajo en la biblioteca de TVout a una resolución menor. TVout partida como esta utiliza alrededor de 8KB de lo ATmega 1284Ps SRAM (para el búfer de vídeo). Tuve que modificar el RAMEND en TinyBASIC Plus para permitir suficiente memoria para el búfer de vídeo requerido por TVout y cambié también la tecla de pausa en TinyBASIC Plus (era anterior CTRL + C) porque las teclas de control no son compatibles con esta biblioteca de teclado PS2 (yo usé la tecla escape en lugar de otro).
Tuve que usar el ATmega original bootloader 1284P 16MHz para parar cualquier problemillas de TVout que ocurren cuando se utiliza el bootloader optiboot (el bootloader original no hace estos problemillas). Cuando compling el bosquejo en el IDE de Arduino reg, el tamaño del dibujo es menos de 22KB y el uso estimado de SRAM del AVR es de casi 9KB (dejando alrededor de 8KB para el buffer de video TVout). El bosquejo TinyBASIC Plus se encuentra adjunto en esta página.
El ATmega 1284 P Arduino bootloader se puede encontrar aquí:
https://github.com/fakufaku/Mighty-1284p
El código TinyBASIC Plus original puede encontrarse aquí:
https://github.com/BleuLlama/TinyBasicPlus
La biblioteca de TVout puede encontrarse aquí:
https://code.Google.com/p/Arduino-TVout/
Tenga en cuenta, TinyBASIC Plus, software de Arduino (bootloaders, IDE etc.), la biblioteca de PS2uartKeyboard y la biblioteca de TVout todos mantener licencias de software que deben seguirse si usando alguna del código creadores de su propio.
Actualización (23/06/2014): He adjuntado el archivo hexadecimal para el bosquejo TinyBASIC Plus (compilado con el IDE de Arduino) por lo que el IDE de Arduino no debe ser usado para programar el ATmega P. 1284 Tengo este archivo desde el directorio temporal creado por el IDE de Arduino durante la etapa de compilación del bosquejo, así que no estoy seguro si es correcto (déjeme por favor saber si alguien tiene algún problema usando).