Autor Tema: Video compuesto para TV con pic16f84  (Leído 8532 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 149
    • rat argentina!!
Video compuesto para TV con pic16f84
« en: 16 de Septiembre de 2014, 00:41:33 »
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.0

es 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 ajustar

el 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?
« Última modificación: 16 de Septiembre de 2014, 01:02:05 por jorgenuviola »

Desconectado siniestro

  • PIC10
  • *
  • Mensajes: 44
Re: Video compuesto para TV con pic16f84
« Respuesta #1 en: 16 de Septiembre de 2014, 01:05:08 »
Hola jorge, de Assembler aun no se mucho que se diga pero
Código: [Seleccionar]
micros4:
      NOP  ;un ciclo de trabajo por cada instruccion nop
      NOP
      NOP
      NOP
      RETURN

Edito:
la instrucción RETURN tambien debe consumir tiempo de ejecucion verdad?Si, consume 2 ciclos .... y no se si me equivoque pero el NOP no consume dos ciclos de trabajo?? Si, me equivoque, solo consume uno
CALL y RETURN consume dos ciclos de trabajo
« Última modificación: 16 de Septiembre de 2014, 01:11:12 por siniestro »
Saber de todo un poco, sin ser experto en nada (una filosofia extraña)

Desconectado vixctor

  • PIC16
  • ***
  • Mensajes: 110
Re: Video compuesto para TV con pic16f84
« Respuesta #2 en: 16 de Septiembre de 2014, 01:59:00 »
Básicamente las barras no te salen porque no estas cumpliendo cabalmente con todos los timings...

Desconozco las especificaciones de PAL, pero en NTSC, en los pulsos de sincronía vertical (que no tienes) se añaden algo que se llaman pulsos EQUALIZADORES.

Estos pulsos, sirven más que nada para identificar el campo PAR o IMPAR en una señal entrelazada de video NTSC, y son cruciales al momento de incluir toda la estructura de sincronización o la imagen que se genera no servirá de nada.

También, es importante la frecuencia de trabajo, la series 16 no tienen la velocidad suficiente para generar video, pero un pic serie 18 si que lo tendrá.

Te aconsejo usar un pic 18 de la serie K, por ejemplo, el PIC18F46K22, el cual alcanza 64 mhz de reloj sin problemas, esto es muy util porque en mi caso, cuando generé video compuesto, lo hice usando un cristal de 14.8182 Mhz, que es 4 veces la fundamental de NTSC, para PAL el diferente... pero al usar un cristal con la misma frecuencia que el video, la generación de tiempos es muy precisa.

Si no te es posible usar un PIC serie 18, al menos un serie 16F1, que corren hasta 32 Mhz podría ser de utilidad...

También, es necesario tener todo en ensamblador, y medir muy bien los timings usando el simulador de MPLAB

Aca hay un ejemplo de un proyecto (Ya antiguo) en el cual generé video NTSC sobre una pantalla de un viejo play station 1.




Otra cosa, es que ojala pudieras conseguir un AD725, es un chip que te facilita mucho el trabajo para generar señales a color.

Saludos.

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 149
    • rat argentina!!
Re: Video compuesto para TV con pic16f84
« Respuesta #3 en: 16 de Septiembre de 2014, 02:32:28 »
Vicxtor, muchas gracias por responder. Si debo pulir el programa, se que con la familia 16F se logra video de mala calidad, pixeles grandes, antes de pasarme a un familia 18 quiero lograr manejarlo en el 16, si logro los sincronismos correctos es posible que logre un IC estable.

luego seguire con esto por ejemplo:

http://www.ucontrol.com.ar/forosmf/proyectos-con-pic/generador-de-video/msg84722/#msg84722

este post esta excelente logro los sincronismos de VGA sin problemas, le pedi el archivo ASM y prometio pasarmelo

voy a seguir revisando los tiempos hasta lograrlo, es basicamente una prueba bruta, hasta lograrlo.

en el foro de Ucontrol encontre notas de como hacen correr los pics con cristales mas grandes, tendria que hacer la prueba.

Me faltan los sincronismos de vertical, pensaba usar en el futuro el timer para hacer el vertical mientras el pic genera el horizontal.

tengo varios AD725 que supe comprar, pero la idea es justamente no usarlos, porque solo lo conseguis por ebay y aca ahora no llegan las cosas, usando un pic se convierte en un recurso a mano para todos y muy aplicable, es por eso que busco hacer un programa que quede a disposicion de todos y sea netamente usable en cualquier proyecto.
« Última modificación: 16 de Septiembre de 2014, 02:42:49 por jorgenuviola »

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 149
    • rat argentina!!
Re: Video compuesto para TV con pic16f84
« Respuesta #4 en: 16 de Septiembre de 2014, 02:36:35 »
Hola jorge, de Assembler aun no se mucho que se diga pero
Código: [Seleccionar]
micros4:
      NOP  ;un ciclo de trabajo por cada instruccion nop
      NOP
      NOP
      NOP
      RETURN

Edito:
la instrucción RETURN tambien debe consumir tiempo de ejecucion verdad?Si, consume 2 ciclos .... y no se si me equivoque pero el NOP no consume dos ciclos de trabajo?? Si, me equivoque, solo consume uno
CALL y RETURN consume dos ciclos de trabajo

si, tenes razon, tengo que sumar eso, con el cristal de 4 mhz sin NOP directamente call y return lograba 5us pero no podia bajar de eso, con el cristal de 10 se hizo mas potable.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Video compuesto para TV con pic16f84
« Respuesta #5 en: 16 de Septiembre de 2014, 04:50:59 »
Citar
si, tenes razon, tengo que sumar eso, con el cristal de 4 mhz sin NOP directamente call y return lograba 5us pero no podia bajar de eso, con el cristal de 10 se hizo mas potable.

El PIC 16F84 no va bien para estas cosas, debes escoger otro mas potente, si estas empezando con asm la serie 18f se te va a hacer un poco cuesta arriba, hay 16f que trabajan a 32MHz. Todos los PICs se pueden overclockear, es decir pueden trabajar por encima de la frec que dice el fabricante, pero hay riesgo de que pueda haber errores en la ejecucion del programa, aunque no tendria por que pasar.

Una temporizacion tan pequeña vale la pena hacerla directamente en el programa principal.
Por ejemplo de 5uS a 4Mhz:

bsf  PORTB,0     ;lo que tengas que poner a 1 o 0
goto  $+1          ;va a la suguiente instruccion consumiendo 2 ciclos de instruccion
goto  $+1          ;otros dos uS
nop                   ;1uS mas para completar los 5uS
bcf  PORTB,0     ;ya lleva 5uS en alto

Si aparte de contar tiempos muy precisos tienes que atender a muchas cosas, mejor usar TIMER1 que es de 16bits, te dara precision a 20Mhz de 1/5uS es decir 200nS, con TIMER2 tambien puedes conseguir temporizaciones bastante precisas. Con TIMER0 tambien puedes conseguir estos tiempos, tienes que asignarle el preescaler al WDT, sino la precision sera de la mitad.
« Última modificación: 16 de Septiembre de 2014, 04:57:05 por tapi8 »

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Video compuesto para TV con pic16f84
« Respuesta #6 en: 16 de Septiembre de 2014, 08:27:02 »
Jorge, veo que venis muy bien en los dos foros, me alegro que sigas con todo!!!

En estas cosas es importante el uso del osciloscopio para poder debuguear si algo no sale bien. Si queres sacale una foto de frente al osciloscopio y te tiramos como deberías poner las cosas para ver la onda.

En teoria tendría que haber lineas bien verticales. Tengo que confesar que tengo mis dudas sobre trabajar sin sincro vertical. Estamos basando todo en la idea de richard, pero la verdad es que no puedo asegurar que sin sincro vertical funcione lo que queremos. De todos modos, me parece que lo que estas obteniendo esta muy cerca de lo que esperamos obtener. Quizás si conseguis ajustar bien los tiempos funcione como esperamos.
No he leido bien detenidamente las respuestas, pero puede ser que tengas problemas con los tiempos en el código de las pruebas?

Saludos!
-
Leonardo Garberoglio

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 149
    • rat argentina!!
Re: Video compuesto para TV con pic16f84
« Respuesta #7 en: 16 de Septiembre de 2014, 12:22:03 »
Citar
si, tenes razon, tengo que sumar eso, con el cristal de 4 mhz sin NOP directamente call y return lograba 5us pero no podia bajar de eso, con el cristal de 10 se hizo mas potable.

El PIC 16F84 no va bien para estas cosas, debes escoger otro mas potente, si estas empezando con asm la serie 18f se te va a hacer un poco cuesta arriba, hay 16f que trabajan a 32MHz. Todos los PICs se pueden overclockear, es decir pueden trabajar por encima de la frec que dice el fabricante, pero hay riesgo de que pueda haber errores en la ejecucion del programa, aunque no tendria por que pasar.

Una temporizacion tan pequeña vale la pena hacerla directamente en el programa principal.
Por ejemplo de 5uS a 4Mhz:

bsf  PORTB,0     ;lo que tengas que poner a 1 o 0
goto  $+1          ;va a la suguiente instruccion consumiendo 2 ciclos de instruccion
goto  $+1          ;otros dos uS
nop                   ;1uS mas para completar los 5uS
bcf  PORTB,0     ;ya lleva 5uS en alto

Si aparte de contar tiempos muy precisos tienes que atender a muchas cosas, mejor usar TIMER1 que es de 16bits, te dara precision a 20Mhz de 1/5uS es decir 200nS, con TIMER2 tambien puedes conseguir temporizaciones bastante precisas. Con TIMER0 tambien puedes conseguir estos tiempos, tienes que asignarle el preescaler al WDT, sino la precision sera de la mitad.

hola, gracias por el aporte, por ahora los experimentos los voy a hacer con lo que tengo, inicialmente un 16f84 despues paso a un 877 u 886 u 876, no tengo en mi poder un 18f y estan bastante inaccesibles, extraño comprar por ebay.

Muy buen aporte, no sabia que se podia hacer eso con el goto, lo voy a implementar. Estoy usando un cristal de 10mhz asi que cada instruccion seria 0.4us. ahi es donde le pifie en la programacion calcule mal los tiempos.

el sincro vertical son 6 pulsos positivos mas 5 pulsos de igual ancho pero negativos y 5 pulsos positivos mas en donde en la linea par el ultimo pulso dura el doble ¿es correcto lo que digo o le estoy pifiando?

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 149
    • rat argentina!!
Re: Video compuesto para TV con pic16f84
« Respuesta #8 en: 16 de Septiembre de 2014, 12:25:41 »
Jorge, veo que venis muy bien en los dos foros, me alegro que sigas con todo!!!

En estas cosas es importante el uso del osciloscopio para poder debuguear si algo no sale bien. Si queres sacale una foto de frente al osciloscopio y te tiramos como deberías poner las cosas para ver la onda.

En teoria tendría que haber lineas bien verticales. Tengo que confesar que tengo mis dudas sobre trabajar sin sincro vertical. Estamos basando todo en la idea de richard, pero la verdad es que no puedo asegurar que sin sincro vertical funcione lo que queremos. De todos modos, me parece que lo que estas obteniendo esta muy cerca de lo que esperamos obtener. Quizás si conseguis ajustar bien los tiempos funcione como esperamos.
No he leido bien detenidamente las respuestas, pero puede ser que tengas problemas con los tiempos en el código de las pruebas?

Saludos!
gracias, voy por el segundo round en otro lenguaje jajaja.
si es como decis, hay un tema con los tiempos, hoy lo analizo bien y lo pongo a tono. El tema es que estuve mirando detenidamente la foto, me parece que sin sincro vertical siempre van a quedar desfasadas las columnas, hoy pruebo de nuevo. ya me puse a leer de como hacer una interrupcion asi que voy a tener que implementar el timer para el vertical. Lo razono asi porque la pantalla quedo estable y no era algo caotico como me pasaba antes.
« Última modificación: 16 de Septiembre de 2014, 12:27:56 por jorgenuviola »

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Video compuesto para TV con pic16f84
« Respuesta #9 en: 16 de Septiembre de 2014, 13:08:40 »
Jorge, veo que venis muy bien en los dos foros, me alegro que sigas con todo!!!

En estas cosas es importante el uso del osciloscopio para poder debuguear si algo no sale bien. Si queres sacale una foto de frente al osciloscopio y te tiramos como deberías poner las cosas para ver la onda.

En teoria tendría que haber lineas bien verticales. Tengo que confesar que tengo mis dudas sobre trabajar sin sincro vertical. Estamos basando todo en la idea de richard, pero la verdad es que no puedo asegurar que sin sincro vertical funcione lo que queremos. De todos modos, me parece que lo que estas obteniendo esta muy cerca de lo que esperamos obtener. Quizás si conseguis ajustar bien los tiempos funcione como esperamos.
No he leido bien detenidamente las respuestas, pero puede ser que tengas problemas con los tiempos en el código de las pruebas?

Saludos!
gracias, voy por el segundo round en otro lenguaje jajaja.
si es como decis, hay un tema con los tiempos, hoy lo analizo bien y lo pongo a tono. El tema es que estuve mirando detenidamente la foto, me parece que sin sincro vertical siempre van a quedar desfasadas las columnas, hoy pruebo de nuevo. ya me puse a leer de como hacer una interrupcion asi que voy a tener que implementar el timer para el vertical. Lo razono asi porque la pantalla quedo estable y no era algo caotico como me pasaba antes.

En teoría, sin sincro vertical lo que pasaría es que la imagen se va hacia arriba o abajo constantemente, pero como son líneas verticales no importaría. Para que salgan las lineas verticales tenes que tener sincronizado solo el horizontal. La duda que me queda a mi es que los pulsos de sincro horizontal debe estar solo en las líneas visibles. No sé que pasa al ser un tren continuo de pulsos horizontales, no sé si el vertical pueda llegar a confundir alguna parte del sincro horizontal. Pero si esto no pasa, entonces las lineas verticales deberías poder verlas. Lo más importante es que el pulso de sincro sea de 4useg y el tiempo entre pulsos sea exactamante el tiempo de la norma en la que trabajes, 64useg para PAL (creo). Si esos 64useg no son exactos, entonces aparece ese corrimiento en horizontal.

Saludos y espero los resultados corregidos!
-
Leonardo Garberoglio

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 149
    • rat argentina!!
Re: Video compuesto para TV con pic16f84
« Respuesta #10 en: 17 de Septiembre de 2014, 13:48:17 »
gracias, sigo trabajando solo que ayer no hice ningun avance, estoy renengando con crear un contador, queria usar uno para que decremente pero cuando lo compilo me tira error

todavia no empece a practicar interrupciones, pero estoy complicado pero ya lo voy a descular

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 149
    • rat argentina!!
Re: Video compuesto para TV con pic16f84
« Respuesta #11 en: 17 de Septiembre de 2014, 22:28:07 »
tengo el siguiente problema, quiero hacer un contador para contar los pulsos, pense en hacerlo asi.

inicio:
      BSF STATUS,RP0
      CLRF PORTA
      BCF STATUS,RP0
rutina:;cristal de 10MHZ 0.4US cada funcion
      MOVLW D'251'
cont:   MOVFW conteo
      BCF PORTA,2 ;0.4
      BCF PORTA,0 ;0.4
      CALL micros4 ;0.4
      BSF PORTA,0 ;0.4
      CALL micros8 ;0.4
      BCF PORTA,0 ;0.4
      BSF PORTA,2 ;0.4
      CALL micros5 ;0.4
      BCF PORTA,2 ;0.4
      BSF PORTA,0  ;0.4
      CALL micros19 ;0.4
      BSF PORTA,2 ;0.4
      CALL micros6 ;0.4
      BCF PORTA,2 ;0.4
      CALL micros20 ;0.4
      BCF PORTA,0 ;0.4
      BSF PORTA,2 ;0.4
      CALL micros2 ;0.4
      DECFSZ conteo
      GOTO cont  ;cuando esta en cero salta el goto y sigue el programa
                CLRF conteo

vertical:



La variable esta declarada arriba asi:


;***** VARIABLE DEFINITIONS
w_temp        EQU     0x0C        ; variable used for context saving
status_temp   EQU     0x0D        ; variable used for context saving
conteo        EQU      0x0C
;**********************************************************************



ahora cuando apreto f10 y me dice el error.

Error - section 'MAIN_PROGRAM' can not fit the section. Section 'MAIN_PROGRAM' length=0x000008b0
Errors    : 1

este error antes de poner el decrementador no lo arrojaba y no toque nada de eso

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 149
    • rat argentina!!
Re: Video compuesto para TV con pic16f84
« Respuesta #12 en: 20 de Septiembre de 2014, 02:43:21 »
sigo en el proceso de aprender a manejar mplab, asi que pare a leer en estos dias y  encontre el STOPWATCH y ahi pude ir contando los us. Todavia no lo logre pero va



Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 149
    • rat argentina!!
Re: Video compuesto para TV con pic16f84
« Respuesta #13 en: 20 de Septiembre de 2014, 03:48:43 »
me voy a dormir y les comento que elimine los grises para hacerla mas cuadra la programacion (si ya se es dificil creer que sea mas cuadrada de lo que ya es!!) y retoque algunas cosas como por ejemplo que cuando empiece el pulso de 4 us de sincronismo inicial no tenga ningun comando previo, que este limpio y logre esto:

para el garbe y pastbytes!!



Aca va el video


y aqui el programa

Citar
inicio:
       BSF STATUS,RP0
      CLRF PORTA
      BCF STATUS,RP0
      BCF PORTA,2 ;0.4
      BCF PORTA,0 ;0.4
rutina:;cristal de 10MHZ 0.4US cada funcion
      CALL micros4 ;0.4
      BSF PORTA,0 ;0.4      
      CALL micros8 ;0.4
      BSF PORTA,2 ;0.4
      CALL micros5 ;0.4
      BCF PORTA,2 ;0.4
      BSF PORTA,0  ;0.4
      CALL micros19 ;0.4
      BSF PORTA,2 ;0.4
      CALL micros6 ;0.4
      BCF PORTA,2 ;0.4
      CALL micros20 ;0.4
      BSF PORTA,2 ;0.4
      CALL micros2 ;0.4
      BCF PORTA,2 ;0.4
      BCF PORTA,0 ;0.4
      GOTO rutina
;-----------------------retardos en microsegundos----------

micros4:
      NOP  ;un ciclo de trabajo por cada instruccion nop
      NOP
      NOP
      NOP
      NOP
      NOP
      RETURN
micros8:
      NOP  ;un ciclo de trabajo por cada instruccion nop
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP  
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      RETURN
micros5:
      NOP  ;un ciclo de trabajo por cada instruccion nop
      NOP
      NOP
      NOP
      NOP
      NOP
      RETURN
micros6:
      NOP  ;un ciclo de trabajo por cada instruccion nop
      NOP
      NOP
      NOP
      NOP
      NOP
      RETURN         
micros19:
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP ;8us
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP ;8us
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP ;8us
      NOP
      NOP
      NOP
      NOP; 18.8
      RETURN
      
micros20:
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP ;8us
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP ;8us
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      RETURN
micros2:
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      RETURN      
; remaining code goes here

        goto $

        END                       ; directive 'end of program'



Me voy a dormir feliz, mañana tratare de hacer la barra gris y luego vere como invento el vertical.

Saludos!!!

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Video compuesto para TV con pic16f84
« Respuesta #14 en: 20 de Septiembre de 2014, 09:24:08 »
 ((:-)) Pero muy bien!!!!!!!!!!!!!

Ahora te diría que trates de bajar el tiempo que dejas encendido el haz, para hacer la linea vertical, al tiempo mínimo, o sea, yo cambiaría esto:

Código: [Seleccionar]
rutina:;cristal de 10MHZ 0.4US cada funcion
      CALL micros4 ;0.4
      BSF PORTA,0 ;0.4     
      CALL micros8 ;0.4
      BSF PORTA,2 ;0.4
      CALL micros5 ;0.4
      BCF PORTA,2 ;0.4
      BSF PORTA,0  ;0.4
      CALL micros19 ;0.4

Por esto

Código: [Seleccionar]
rutina:;cristal de 10MHZ 0.4US cada funcion
      CALL micros4 ;0.4
      BSF PORTA,0 ;0.4     
      CALL micros8 ;0.4
      BSF PORTA,2 ;0.4       ;barra blanca mas fina posible
      BCF PORTA,2 ;0.4
      BSF PORTA,0  ;0.4
      CALL micros20           ;Agrego acá los 5 useg
      CALL micros4             ;que le robamos a la barra blanca

Otro consejo es que pongas comentarios en todas las líneas ya que seguir un prog en ASM es bastante tedioso para el que no lo hizo y se nos va a empezar a complicar seguirte los pasos.

La verdad que me quedo muy contento de que hayas logrado la prueba con éxito!

Cuando quieras empezar con el vertical posteate la idea así la analizamos entre todos. Lo que hace Rickar no lo termino de entender del todo...

Saludos!!!!

-
Leonardo Garberoglio


 

anything