gráficos de computadora de 8 bits [cerrado]

0

Estoy trabajando para aprender cómo funcionan y funcionan las computadoras de 8 bits. Sé que puedes hacer un microprocesador (tedioso) con una gran cantidad de puertas lógicas y eso, pero ¿cómo se leen los gráficos? Sé que este utiliza un microprocesador (PIC), pero qué instrucciones le indican que dibuje un píxel en x, y ubicación . Voy a investigar cómo funciona un monitor mientras tanto.

    
pregunta Joe

3 respuestas

1

En general, tendrá una memoria RAM de video en algún lugar donde las ubicaciones de la memoria correspondan a los píxeles en la pantalla. En general, esta es una memoria de propósito especial ya que debe leerse continuamente y escribirse en la pantalla. En el caso de un monitor de computadora estándar, la tarjeta de video leerá los datos de píxeles de la memoria y los enviará a la pantalla a través de VGA, HDMI o DVI. En el caso de una pantalla de matriz de puntos conectada a un microcontrolador, la memoria de video generalmente reside dentro del chip de control de pantalla en la pantalla. El chip de control lee continuamente la memoria y activa los píxeles en la pantalla. Entonces, la CPU solo tiene que escribir en la RAM de video donde quiere que los píxeles estén activados o desactivados. En monitores de ordenador, varios bytes corresponden a cada píxel. En la pantalla monocromática, cada bit en cada byte podría corresponder a un píxel. Si desea activar algún píxel x, y todo lo que necesita saber es qué ubicación de memoria corresponde a ese píxel y actualizarlo según corresponda, ya sea configurando el color que desee o activando el bit específico que corresponde a ese píxel. Para el microprocesador, todo es solo un número; no hay nada inherente en el ramificador de video que diga 'esto es información de video' aparte del hecho de que se escribe en la pantalla.

Edit: en cuanto a tu juego de 'pong', este es un animal completamente diferente. El chip allí genera una señal de video compuesto sobre la marcha. Si solo quieres dibujar algunos puntos o líneas, esto no es terriblemente complicado. La idea básica es que un cuadro de video está representado por una serie de líneas, transmitidas en secuencia. Las líneas están marcadas por pulsos de sincronización horizontal, y los cuadros están marcados por pulsos de sincronización vertical. En los monitores CRT antiguos, las señales de sincronización se utilizan para controlar la exploración del haz de electrones a través de la pantalla, mientras que todas las señales de sincronización se envían directamente al cañón de electrones para cambiar la intensidad. Todo lo que debe hacer el microcontrolador es generar los pulsos de sincronización en los momentos correctos y luego establecer la salida 'alta' cuando el cañón de electrones está apuntando al punto en la pantalla que el controlador desea que se ilumine en blanco. Esto se puede hacer con un video RAM, leyendo un píxel a la vez, o con un montón de temporizadores y contadores cuidadosamente configurados. Este chip no tiene suficiente RAM para almacenar un cuadro completo, por lo que lo más probable es que estén usando el método del temporizador. El juego tiene dos paletas y una pelota. Para generar la señal de video, el controlador genera una línea de video a la vez así: genere un pulso HSYNC, espere hasta que aparezca la primera columna de la paleta, dibuje un punto en la paleta si actualmente se cruza con esa línea, espere hasta que la bola la columna gira alrededor, dibuja la bola si se supone que la bola está en esa línea, espera a que la segunda columna de paletas se mueva alrededor, dibuja la paleta si se cruza con la línea actual, espera la cantidad correcta de tiempo para el siguiente pulso HSYNC, y repetir. Hay algunos detalles con respecto a la generación de la señal VSYNC, así como también el dibujo en el área visible de la pantalla.

    
respondido por el alex.forencich
1

Si bien un microprocesador de 32 o 64 bits contenido en la PC de su escritorio tendrá RAM de video asignada dentro del espacio de direcciones de la CPU, este no suele ser el caso para la mayoría de los microcontroladores de 8 bits, que es el tema de la pregunta.

Los procesadores de 8 bits generalmente no tienen más de 65K de memoria (direccionados usando un campo de dirección de 16 bits).

Los microprocesadores de 8 bits más antiguos, como el 6502 y el 6800, tenían direcciones externas y buses de datos, ya que no contenían ninguna memoria dentro del microprocesador. Por eso, las primeras computadoras como Apple // tenían un video con mapas de memoria, pero le quitaban la memoria para usarla como RAM general para los programas. A medida que aumentaban los tamaños de pantalla, el búfer de 16K (1/4 del espacio disponible de 64K) asignado a los gráficos no era lo suficientemente grande y se diseñaron esquemas bancarios complejos para acceder a toda la memoria de video. Cada fabricante tenía su propio esquema. Fue una pesadilla.

En general, los microcontroladores de 8 bits no tienen direcciones externas ni buses de datos, ya que desean permitir la mayor cantidad posible de pines para periféricos (GPIO, SPI, I2C, UART). Por lo tanto, no es factible hacer un mapeo de memoria de las pantallas usando estos chips.

Por lo tanto, la mayoría de las pantallas (OLED, TFT, LCD, etc.) utilizadas con microcontroladores están conectadas a un controlador de pantalla, que a su vez se conecta al microcontrolador a través de una interfaz en serie como SPI o I2C. Además de la interfaz en serie, estos controladores tienen un modo de datos y un modo de control controlado por una línea D / C. Para escribir un píxel o grupo de píxeles, el microcontrolador establece primero la línea D / C en el modo de comando, y luego envía un comando al controlador para configurar una posición de cursor X, Y. Luego, el microcontrolador envía un comando para preparar el controlador de pantalla para la escritura de píxeles.

Para escribir los datos de los píxeles reales, el microcontrolador ajusta la línea D / C al modo de datos y luego envía los datos para uno o más píxeles: un byte para color de 8 bits, dos bytes para 15 o 16 -bit color, y tres bytes para color de 24 bits. Después de cada píxel, el controlador de pantalla incrementa automáticamente la dirección de pantalla, por lo que cualquier píxel adicional se colocará en la posición correcta.

Hay algunos microcontroladores que tienen controladores de pantalla LCD incorporados (como el PIC24FJ64GA310) pero son, con mucho, la excepción y se usan generalmente para pantallas más pequeñas (16 caracteres por dos líneas, etc.)

    
respondido por el tcrosley
0

¿Estás seguro de que el chip en ese tablero es solo un PIC? El chip que veo en este video tiene marcas personalizadas en él. Puede ser un dispositivo personalizado con hardware de audio y video incorporado. Los microcontroladores normales de 8 bits no admiten audio o video directamente. Necesitas hardware externo para que eso suceda. Si desea jugar con dispositivos de salida visual, puede comenzar con algo simple como un personaje. El video de TV no es trivial.

Para el audio, podría generar ondas cuadradas con un módulo PWM. El microcontrolador probablemente podría manejar un pequeño altavoz directamente.

    
respondido por el Adam Haun

Lea otras preguntas en las etiquetas