Retardos en assembler (Tutorial completo y explicado) 🆓

  Рет қаралды 14,954

RodrigoCarita

RodrigoCarita

Күн бұрын

Пікірлер: 33
@angelvenegas6986
@angelvenegas6986 Жыл бұрын
Gracias señor por explicar este tema❤
@musicotecamas8604
@musicotecamas8604 Жыл бұрын
me salvaste ... de verdad
@okamiLF
@okamiLF Жыл бұрын
oh dios mios me has salvado de una buena gracias!!!
@leanxds2097
@leanxds2097 5 жыл бұрын
Infinitas gracias por tus vídeos Saludos desde misiones :D
@lorenzoalonsoguzmanherrera4652
@lorenzoalonsoguzmanherrera4652 4 жыл бұрын
Gracias, entendí la parte principal. Me perdí un poco en la rotación de los leds pero veré de nuevo esa parte
@brandoncruz3995
@brandoncruz3995 4 жыл бұрын
Excelente explicacion!, muchas gracias por hacer estos videos :)
@EdwardYamunaque
@EdwardYamunaque 6 жыл бұрын
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_tutorial
@rodrigocarita_tutorial 6 жыл бұрын
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.
@rodrigomaruresanchez877
@rodrigomaruresanchez877 4 жыл бұрын
esto que uso tiene en la electrónica?
@michaelvenegas825
@michaelvenegas825 3 жыл бұрын
excelente, tu código funciona prefectamente
@SanchayanPackiyanathan
@SanchayanPackiyanathan 6 жыл бұрын
muchas Gracias amigo !!! trabajo de punta !!!!
@jmbcar
@jmbcar 5 жыл бұрын
No es assembler
@alexgarciaherrera6872
@alexgarciaherrera6872 4 жыл бұрын
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
@alexgarciaherrera6872
@alexgarciaherrera6872 4 жыл бұрын
@@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_tutorial
@rodrigocarita_tutorial 4 жыл бұрын
@@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.
@alexgarciaherrera6872
@alexgarciaherrera6872 4 жыл бұрын
@@rodrigocarita_tutorial si me funciono, una pregunta como pdria variar el tiempo de la para que fuera 200ms u 800ms o 1.5segundos?
@rodrigocarita_tutorial
@rodrigocarita_tutorial 4 жыл бұрын
@@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
@cristianandresbarajasvasqu6501
@cristianandresbarajasvasqu6501 6 жыл бұрын
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_tutorial
@rodrigocarita_tutorial 6 жыл бұрын
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.
@cristianandresbarajasvasqu6501
@cristianandresbarajasvasqu6501 6 жыл бұрын
@@rodrigocarita_tutorial Excelente tu ayuda. Gracias espero lograr compartir más adelante algo de lo que también estoy desarrollando..! Exitos..!!
@rodrigocarita_tutorial
@rodrigocarita_tutorial 6 жыл бұрын
Excelente! No te olvides compartirnos tus avances. Éxitos.
@josephmx9561
@josephmx9561 4 жыл бұрын
Gracias Crack!
@zeroanueve-reparaciones5189
@zeroanueve-reparaciones5189 4 жыл бұрын
genio! muchas gracias ! segui asi!
@alexgarciaherrera6872
@alexgarciaherrera6872 4 жыл бұрын
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_tutorial
@rodrigocarita_tutorial 4 жыл бұрын
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
@alexgarciaherrera6872
@alexgarciaherrera6872 4 жыл бұрын
@@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.
Macros para pic16f877a 🆓
1:00:17
RodrigoCarita
Рет қаралды 3,3 М.
Retardo de Tiempo en Lenguaje Ensamblador
27:02
Darío Betanzos
Рет қаралды 7 М.
Жездуха 42-серия
29:26
Million Show
Рет қаралды 2,6 МЛН
I made Tetris in C, this is what I learned
15:15
Austin Larsen
Рет қаралды 20 М.
Python laid waste to my C++!
17:18
Sheafification of G
Рет қаралды 184 М.
Programacion en Assembler PIC16F84A - ➀ INTRODUCCION
29:12
Crz Electronic's
Рет қаралды 12 М.
Retardos por Software - Tutorial PIC16F84A (ASM)
20:00
Wels
Рет қаралды 12 М.