Buenas noches comunidad, dado el comienzo de mi busqueda en crear un IC de sincronismos para VGA y TV y porque no Hercules, buscando obtener un IC que me permita incluir en mis futuros proyectos para utilizar algun dispositivo visual como un monitor o una TV, me embarque hace meses en la lectura de como hacerlo, he leido todos los post existentes a la fecha, he sacado buenas conclusiones y si bien en algunos post hay archivos hex o algunos en otro lenguaje, incluso en la pagina de richard´s que habla de video con pic da una programacion en ASM, yo queria por mis propios medios crear la mia. Soy programador en basic e hice todas las pruebas necesarias para saber que en basic no es posible un proyecto de este tipo, si es potente para hacer todo tipo de programacion pero cuando se debe hilar fino para manejar los ciclos del pic y los microsegundos se convierte en un lenguaje inexacto.
Asi que siempre le esquive al ASM y finalmente me meti, porque quiero hacer mi proyecto y si hay que aprender algo nuevo, bueno nunca es tarde.
el desarrollo del fracaso en en basic esta en este post.
http://www.todopic.com.ar/foros/index.php?topic=43100.0es por ello que no los voy a aburrir con la introduccion de todo el experimento. Lo unico que voy a aclarar que empiezo con una señal de video compuesto para TV.
esto busco generar

voy a retomar en la ultima pagina de ese post en donde habia quedado pendiente esta prueba.
Gracias a la explicacion de los muchachos logre manejar los ciclos del pic, en basic me sentabaa sumar 2us aca 2us alla pero en realidad no eran reales, seguramente serian casi milesegundos, aca entendi el concepto de contar los ciclos de trabajo del pic, tambien de a poco voy comprendiendo la programacion, antes veia y no entendia nada, poco a poco ya voy traduciendo, me cuesta un montoooon!!! porque todavia no se nada.
Lo ultimo charlado era este experimiento que propuso elgarbe SIN SINCRO VERTICAL para ver si algo se generaba y parto este experimento desde este punto usando un cristal de 10 MHZ.
Dejame insistir en que la primer prueba debería hacerla sin sincronía vertical. Tal como lohace Rickard.
El código de él hace lo siguiente:
Pone la señal de salida en 0V
Delay de 4us (en el texto dice 3useg porque ya tiene algo perdido en las instrucciones previas)
Pone la señal en 0.3V (da por finalizado el pulso de sincro horizontal)
Delay de 8useg (acá deja pasar el tiempo para los TV viejos que necesitan ese retardo para que el haz esté en posicion)
Pone señal en 0.6V (una vez que pasaron los primeros 12 useg ya estamos al comienzo de la imagen, en la pate izquierda de la pantalla. Pone color Gris)
Delay de 4useg (deja el color Gris por 4useg para dibujar una rayita)
Pone la señal en 0.3V (vuelve al color negro)
Delay de 19useg (deja que pasen 19useg y el haz avance por la pantalla en color negro. 19useg es casi el medio de la pantalla)
Pone la señal en 1V (Para pintar en blanco)
Delay de 4useg (dibuja una rayita blanca en la pantalla)
Pone la señal en 0.3V (vuelve al color Negro)
Delay de 19useg (espera a llegar al final de la pantalla 4+19+4+19=46useg)
Pone señal en 0.6V (pinta color Gris)
Delay de 2useg
Delay de 2 ciclos de reloj
En teoriía con eso consigue la señal horizontal de 64useg, aunque a mi no me dan las cuentas.
Lo unico que necesitas para que el TV se sincronice con tu señal es el pulso horizontal. Al vertical, en principio podes dejarlo afuera, total el TV funciona igual, lo unico que no vas a conseguir es sincronizarte verticalmente con el barrido. Pero deberías obtener las 3 barras bien verticales.
Yo haría ese programa en basic y ajustaría los tiempos con el osciloscopio hasta obtener los tiempos correctos y los niveles de tension correctos, sin conectar el TV. Luego, cuando tu señal sea perfecta se la mandas al TV y.... voilá tendrás las barras verticales!
Con la alegría de esa imagen podemos seguir con el vertical.
Saludos y suerte!
Conclusion:
4US ambos port 0
8 us port a0 1 a2 0
4 us port a0 0 a2 1
19us port a0 1 a2 0
4 us port a0 1 a2 1
19us port a0 1 a2 0
2 us port a0 0 a2 1
programe lo siguiente: (pongo solo el programa omitiendo toda la parte de configuracion del pic asi no cansa leer y se hace mas corto)
inicio:
BSF STATUS,RP0
CLRF PORTA
BCF STATUS,RP0
rutina:
BCF PORTA,2
BCF PORTA,0
CALL micros4
BSF PORTA,0
CALL micros8
BCF PORTA,0
BSF PORTA,2
CALL micros4
BCF PORTA,2
BSF PORTA,0
CALL micros19
BSF PORTA,2
CALL micros4
BCF PORTA,2
CALL micros19
BCF PORTA,0
BSF PORTA,2
CALL micros2
GOTO rutina
;-----------------------retardos en microsegundos----------
micros4:
NOP ;un ciclo de trabajo por cada instruccion nop
NOP
NOP
NOP
RETURN
micros8:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RETURN
micros19:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RETURN
micros2:
NOP
NOP
RETURN
NOTA: Aun estoy verde para tomar los tiempos con el osciloscopio vi que me acerque bastante pero puede faltar acomodar o ajustarel resultado:
Les dejo un video para que vean como opera:
esta mal la fecha de la camara ejejjejejejeej
¿asi debia verse? (porque no salen barras verticales) ¿opiniones?