oh dios mios me has salvado de una buena gracias!!!
@leanxds20975 жыл бұрын
Infinitas gracias por tus vídeos Saludos desde misiones :D
@lorenzoalonsoguzmanherrera46524 жыл бұрын
Gracias, entendí la parte principal. Me perdí un poco en la rotación de los leds pero veré de nuevo esa parte
@brandoncruz39954 жыл бұрын
Excelente explicacion!, muchas gracias por hacer estos videos :)
@EdwardYamunaque6 жыл бұрын
este método usado supera la precisión usando timer?, estoy tratando de hacer lo mismo con avr, ya que los saltos de cada instrucción no tienen la misma cantidad de saltos que la de los pic.
@rodrigocarita_tutorial6 жыл бұрын
Por método de bucles anidados La respuesta es; si. Lo que sucede es que teniendo el cálculo del tiempo que consume cada instrucción se pueden llegar a tener retardos con exactitud de hasta 0.2 uS dependiendo del cristal con el que se trabaje (para 0.2uS = 20Mhz). Puedes aumentar el tiempo de la subrutina usando instrucciones NOP. El cálculo es un poco tedioso pero es la forma más exacta que se puede tener. Dentro de los TMR el más preciso es el TMR1, debido a que es un temporizador de 16 bits por lo tanto puede alcanzar mayores resoluciones, pero depende demasiado de la frecuencia del cristal algo que no podemos estar cambiando constantemente. En general con el TMR1 se puede llegar a obtener "1" segundo perfecto si es que se trabaja con un cristal de 32.768 Khz. ideal para proyectos sobre relojes. Para el AVR es cosa de buscar en su datasheet la cantidad de ciclos máquina (cm) que consume cada instrucción. Lo que queda es cálculo con las fórmulas brindadas. SI quieres obtener retardos perfectos pues hay que calcular más a profundidad con algunos bucles de NOP. Eso toma su tiempo Un Saludo.
@rodrigomaruresanchez8774 жыл бұрын
esto que uso tiene en la electrónica?
@michaelvenegas8253 жыл бұрын
excelente, tu código funciona prefectamente
@SanchayanPackiyanathan6 жыл бұрын
muchas Gracias amigo !!! trabajo de punta !!!!
@jmbcar5 жыл бұрын
No es assembler
@alexgarciaherrera68724 жыл бұрын
hola buen dia yo lo estoy ahciendo con el pic 16f628a pero se queda encendido todo el tiempo, me puedes decir si tengo algo mal en la sintaxis por favor LIST P=16F628A #include __CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_OFF &_XT_OSC & _LVP_OFF & _MCLRE_ON ORG 0; num EQU 0X01 pepito EQU 0X06 Valor EQU 0X03 Ver1 EQU 0X04 Ver2 EQU 0x05 BSF STATUS,RP0 CLRF TRISB BCF STATUS,RP0 CLRF PORTB ;////////////////////////////////////// PROGRAMA BSF PORTB,0 CALL ret1s BCF PORTB,0 CALL ret1s GOTO PROGRAMA ;/////////////////////////////////////SUB RUTINA RETARDO
@alexgarciaherrera68724 жыл бұрын
@@rodrigocarita8837 es este, ;Creo que el problema esta cuandoasigno estos espacios en la me moria no son los mismos para el pic16f628a, me puedes decir para el 16f628a seria num EQU ??? LIST P=16F628A include __CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_OFF &_XT_OSC & _LVP_OFF & _MCLRE_ON ORG 0; num EQU 0X26 ; acá pepito EQU 0X27 Valor EQU 0X28 Ver1 EQU 0X29 Ver2 EQU 0x30 BSF STATUS,RP0 CLRF TRISB BCF STATUS,RP0 CLRF PORTB ;////////////////////////////////////// PROGRAMA BSF PORTB,0 CALL ret1s BCF PORTB,0 CALL ret1s GOTO PROGRAMA ;/////////////////////////////////////SUB RUTINA RETARDO ret1s movlw d'25' movwf num ARRIBA movlw d'255' movwf pepito BUCLE1 movlw d'255' movwf Valor REPITE1 decfsz Valor,1 goto REPITE1 decfsz pepito,1 goto BUCLE1 decfsz num,1 goto ARRIBA RETURN END
@rodrigocarita_tutorial4 жыл бұрын
@@alexgarciaherrera6872 Estimado. Tu código si funciona, al parecer hiciste algunos malos cálculos o has obviado el Crystal. He compilado tu código y bajándole los valores de las memorias, logro tener el parpadeo deseado. Ahora lo que te queda es hacer el cálculo. Por si acaso, dejo el código que me ha funcionado que es el mismo. Para que compruebes que si hay parpadeo. Un saludo. include LIST P=16F628 __CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_OFF &_XT_OSC & _LVP_OFF & _MCLRE_ON ORG 0; num EQU 0X26 ; acá pepito EQU 0X27 Valor EQU 0X28 Ver1 EQU 0X29 Ver2 EQU 0x30 BSF STATUS,RP0 CLRF TRISB BCF STATUS,RP0 CLRF PORTB ;////////////////////////////////////// PROGRAMA BSF PORTB,4 CALL LOCAZO BCF PORTB,4 CALL LOCAZO GOTO PROGRAMA ;/////////////////////////////////////SUB RUTINA RETARDO LOCAZO movlw d'1' movwf num ARRIBA movlw d'100' movwf pepito BUCLE1 movlw d'255' movwf Valor REPITE1 decfsz Valor,1 goto REPITE1 decfsz pepito,1 goto BUCLE1 decfsz num,1 goto ARRIBA RETURN END Me confirmas.
@alexgarciaherrera68724 жыл бұрын
@@rodrigocarita_tutorial si me funciono, una pregunta como pdria variar el tiempo de la para que fuera 200ms u 800ms o 1.5segundos?
@rodrigocarita_tutorial4 жыл бұрын
@@alexgarciaherrera6872 Es extraña tu pregunta, porque en el video se explica todo. Con cálculos y como desarrollarlos para el retardo que queramos. Un saludo
@cristianandresbarajasvasqu65016 жыл бұрын
Hola excelentes videos, gracias por compartir el conocimiento..! Tengo una duda pequeña como le cambiaste el tema a Proteus, lo personalizaste o usaste la instalación de algún tema..? Gracias..!
@rodrigocarita_tutorial6 жыл бұрын
Gracias por los comentarios. El Proteus es completamente personalizable, Y lo mejor es que puedes guardar varios temas para usarlo en diferentes situaciones. Por ejemplo yo tengo un tema OSCURO para los videotutoriales, y un tema claro para las capturas en la teoría. Eso se logra en la pestaña TEMPLATE. Y ahi vas modificando los colores con SET DESIGN COLOR. para modificar las hojas y estilos: GRAPHIC STYLES. Para modificar color de componentes y mucho más. etc etc. Cuando ya hayas personalizado el diseño que deseas en la misma pestaña está la opción. SAVE DESING as TEMPLATE. Lo guardas con un nombre y tendrás tu tema guardado. Con la opcion APPly Styles from TEMPLATE. Te permite escoger un tema que hayas guardado. El tema por defecto es Default. Espero haberte ayudado y que puedas personalizar tu Isis Proteus a tu gusto. Se pueden hacer muchas cosas más. Es cosa de curiosear. Un saludo.
@cristianandresbarajasvasqu65016 жыл бұрын
@@rodrigocarita_tutorial Excelente tu ayuda. Gracias espero lograr compartir más adelante algo de lo que también estoy desarrollando..! Exitos..!!
@rodrigocarita_tutorial6 жыл бұрын
Excelente! No te olvides compartirnos tus avances. Éxitos.
@josephmx95614 жыл бұрын
Gracias Crack!
@zeroanueve-reparaciones51894 жыл бұрын
genio! muchas gracias ! segui asi!
@alexgarciaherrera68724 жыл бұрын
Hola me gusto mucho tu video fue de gran ayuda para entender, tengo una duda existe algun comando o se pude crear el retardo en lenguaje asembler de forma mas sencilla? agradezco tu ayuda.
@rodrigocarita_tutorial4 жыл бұрын
Estimado Alex - En los siguientes capítulos se ve como generar retardos utilizando el Timer0 y Timer1. Ahora también depende de a que te refieras con sencillo, ya que; el lenguaje assembler es de bajo nivel y todos los procesos tienes que programarlos en base a instrucciones. Para finalizar desde el capitulo de "Macro para pic", se puede ver como simplificar enormes líneas de códigos (Está incluido los retardos) y también en la página están publicados los archivos de Macros y librerias en sus últimas versiones. Te invito a que puedas descargarlos y utilizarlas. Un saludo
@alexgarciaherrera68724 жыл бұрын
@@rodrigocarita_tutorial gracias por responder, me refería a mas sencillo a modo de menos líneas, tengo algo de experiencia programando en otros lenguajes pero asembler lleva mas detalles de todas formas tu clase esta perfecta, saludos.