Como hacer un temporizador con el Timer0 PIC18F4550 - Wels Theory

Поделиться
HTML-код
  • Опубликовано: 7 ноя 2024

Комментарии • 65

  • @juanguevara4288
    @juanguevara4288 6 лет назад +6

    Hola ! :) me gustan tus videos, te hago una recomendación - petición, espero no te moleste, me agradaría que tus tutoriales los hicieras más básicos
    Ejemplo uno de LED como los que has subido, después uno ahora con varios LED’S
    Después uno de como mover un motor por ejemplo y después otro como este que acabas de subir implementando el motor y otras cosas
    Ya que habemos muchos que recién empezamos y creo yo sería más sencillo y detallado entender como hacer funcionar distintos componentes o materiales electrónicos con este microcontrolador pero componente por componente :( no varios a la vez
    Espero me haya dado a entender jeje disculpa mi atrevimiento 😅 saludos y sigue así :)

    • @Wels_Theory
      @Wels_Theory  6 лет назад +1

      Juan Hola :) gracias por comentar, primero no me molesta, me ayuda a mejorar los vídeos. Entiendo el punto, pero me podrías ayudar con algunas ideas por ejemplo he hecho con un led y leds, con display 7seg, con lcd, o te refieres a entender los temas como un Timer 0 con un Led (sin motor ni LCD)? Me cuentas :)

    • @juanguevara4288
      @juanguevara4288 6 лет назад

      Wels muchas gracias por no ignorar 😁
      Pues una de servomotores estaría genial ! No se qué tan complicado sea jeje pero estaría muy bien, aunque insisto, ejemplo sencillo y detallar hasta lo más “tonto” de la programación hacia el servo y no hacer varias cosas a la vez
      En una segunda parte agregar más cosas y componentes al programa no estría nada mal :)
      También para infrarrojos sería genial (emisor - receptor)
      Tal vez videos explicando RUTINAS para varias cosas pero no tan avanzadas
      Así como rutina de mover un motor hacia la izquierda por 3s y enseguida hacia el otro lado y después apagado
      Es un ejemplo
      También adentrándose más estaría genial una construcción de algún proyecto básico como un carrito que evita obstáculos o cosas así que encuentra uno para Arduino pero con video previos de como hacer algunas rutinas de como te comentaba :)
      De verdad disculpa tanto atrevimiento jeje solo es sugerencia
      Sigue así muchas gracias y saludos !!! 😅

    • @juanguevara4288
      @juanguevara4288 6 лет назад +1

      Y en cuanto a lo que dices del LED pues como te digo me refiero a que si vamos a aprender motor pues que sea motor nada más, porque si metemos más cosas como la lcd o extras, hay confusión cuando se programa y dudas de en si como programar el motor

  • @sergioangeles9183
    @sergioangeles9183 4 года назад

    Hola, estoy estudiando una ingenieria y en tus videos he aprendido mucho, de verdad vale mucho la pena cada video!!!, muchas gracias

  • @luisbmalave
    @luisbmalave 6 лет назад

    Buenísimo.... ya hemos visto muchos Tutos de blinks leds... usar Timers e interrupciones es de gente Pro.... Se agradece la explicación en nuestro lenguaje nativo.

  • @liliinfante10
    @liliinfante10 4 года назад

    Saludos desde Colombia, muchas gracias, muy clara la explicación

  • @andynquispe4525
    @andynquispe4525 3 года назад +1

    que materiales utilizaste
    en proteus como esta plasmado

  • @LuisRodriguez-uh7vw
    @LuisRodriguez-uh7vw 4 года назад +1

    Gracias wels eres genial!:,)
    ojalá no dejes de hacer videos:c

  • @jhonvallejo1146
    @jhonvallejo1146 3 года назад

    muy buena explicación y si quisiera temporizar por 5 minutos el encendido del motor como lo haria ya que lo hiciste calculando el tiempo de temporizado, asi que mi duda es si puedes usar ese mismo tiempo para temporizar durante 5 minutos el motor.

    • @Wels_Theory
      @Wels_Theory  3 года назад +1

      5 minutos es bastante, lo que podrías hacer es que tu timer genere interrupciones de 1 segundo. Y que una variable vaya aumentando cada segundo, cuando esta variable sea igual a 60 quiere decir que han pasado 60 veces 1 segundo. Podrías calcularlo para 5 minutos. Un abrazo

  • @ayelensosa490
    @ayelensosa490 3 года назад +1

    Hola, explicas muy bien. Estoy realizando una programacion parecida con el pic18f4550 y dos motores que simulan dos bandas transportadoras con un contador, tengo 3 errores en la simulación... podria realizar un video de este programa?

    • @Wels_Theory
      @Wels_Theory  3 года назад +1

      Hola Ayelen tengo este video con pic18f4550 motores y timer, de repente te puede ayudar ruclips.net/video/DkpeCg24t9I/видео.html

  • @liliinfante10
    @liliinfante10 4 года назад +4

    para los que les sale error en el "void interrupt" cámbienlo por "void __interrupt () ISR_timer0(void)" solo para las versiones mas recientes de xc8

    • @Wels_Theory
      @Wels_Theory  4 года назад

      Es verdad eso! Gracias lili Infante 😊

  • @maelectronics8450
    @maelectronics8450 6 лет назад

    Muchas gracias Wels, esperaba este video desde hace tiempo, sigue haciendo videos con motores

  • @roggerrivera9437
    @roggerrivera9437 3 года назад

    Hola wels, excelente video. Como haría para trabajar con la interrupción del timer0 pero con baja prioridad?.

    • @Wels_Theory
      @Wels_Theory  3 года назад

      En el registro intcon2 encuentras el bit de prioridad del timer0 mándale cero

    • @roggerrivera9437
      @roggerrivera9437 3 года назад

      @@Wels_Theory gracias por la respuesta. Ya logré ponerlo a baja prioridad c:

  • @JuanFerrer08
    @JuanFerrer08 4 года назад

    Hola que tal estan excelentes tus videos, me han servido mucho. Tengo una duda como lo podria hacer funcionar si en mi configuracion estoy poniendo 48MHz en el XTAL_FREQ?

  • @steipingenieria322
    @steipingenieria322 4 года назад

    El tema del mensaje terminado que t vuelve a aparecer, es porque veo que activas tu interrupción mediante la deficion de TMR0H y L, el cual podrías dejarlo en el setup del timer y para activar el timer inmediatamente al momento de encender el motor, podrías usar el registro TMR0ON. El cual cuando evalúas la ISR del timer por desborde lo puedes desactivar y así certificar que la temporozacion queda asociada a la acción del pulsador

  • @luisjuniortito2018
    @luisjuniortito2018 6 лет назад +2

    Buen video Wels, una pregunta porque colocar al pre-escaler 256 y no otro valor como el 128, 64,32,16,8,4 o 2 que están en el data sheet ? y siempre tengo que restar del 65535? en el minuto 11:38

    • @Wels_Theory
      @Wels_Theory  6 лет назад +5

      Luis hola, hice un temporizador de 3 segundos usando el timer 0 de 16 bits.
      Primero que quiere decir de 16 bits, pues determina el número de conteos maximos que puede hacer nuestro timer en este caso es de 16 bits -> 2^16 = 65536, si fuera 8 bits sería -> 2^8 = 256 el numero de conteos máximo.
      Segundo, al hacer un temporizador de 3 segundos usé esta formula -> 3segundos = 4/20MHz* Pre-escaler*(X+1), si tu reemplazas ese prescaler por un valor de 128 notarás que el valor de X será mayor a 65536 que es el conteo maximo que tiene el Timer, entonces elegí un pre escaler de 256 porque me daba un valor que estaba en el rango del contador máximo.
      Sobre la resta, necesitaba una interrupción de desbordamiento para lo cual TMR0 = 65535 - X, los 65535 se obtienen por el timer de 16 bits, si nosotros usaramos un timer de 8 bits sería TMR0 = 255 - X.
      Espero haberte ayudado, saludos.

    • @luisjuniortito2018
      @luisjuniortito2018 6 лет назад

      Muchas gracias por la respuesta :)

  • @doriansolares1266
    @doriansolares1266 5 лет назад

    Buen vídeo, puedes hacer un temporizador programable en segundos, minutos y horas con PIC18F4550, sería estupendo para encender motores dc 9 V, saludos

  • @lionconvoy8622
    @lionconvoy8622 5 лет назад

    buen tutorial! una pregunta, dentro de la rutina de interrupción, ¿no es necesario poner a 0 el bit TM0IF manualmente?

    • @Wels_Theory
      @Wels_Theory  5 лет назад

      Si es necesario colocarlo en 0 manual para apagar esa interrupción o mejor dicho para decir que fue atendida

  • @carloscardona5398
    @carloscardona5398 4 года назад

    Minuto 10:40
    ¿De qué parte del datasheet obtuviste la fórmula?

  • @luiscg5390
    @luiscg5390 5 лет назад +1

    Hola que tal, quisiera saber como le hago para que al presionar y dejar presionado un boton de entrada, me de en la salida un estado alto (1) y despues de un tiempo cambie a estado bajo( 0 ) se lo agradecería,gracias.

  • @cjy8036
    @cjy8036 4 года назад +1

    donde encuentro el circuito?

  • @lilianapennycuneocarmona498
    @lilianapennycuneocarmona498 5 лет назад

    Amigo, en vez de configurarlo para 3 segundos, es posible poner el tiempo con un teclado matricial 4x4?

  • @renandebritoleme3097
    @renandebritoleme3097 3 года назад

    Hola Wels.
    Porqué hay un X+1 en la ecuación del temporizador? No encuentro eso en la FIGURE 11-2: TIMER0 BLOCK DIAGRAM (16-BIT MODE).
    Porqué 65535-X es el valor del TMRH y TMRL? Hay algun lugar en el datasheet que explica eso?

  • @-gero-7429
    @-gero-7429 4 года назад

    No es necesario poner if(INTCONbits.TMR0IF) ya q se supone q cuando se levante la bandera, automáticamente el programa saltará a la interrupción

    • @Wels_Theory
      @Wels_Theory  4 года назад

      Si tuvieras más interrupciones como la de INT0 acá si podrías preguntar si esta o la de TMR0

  • @kpopii123
    @kpopii123 2 года назад +1

    Tendrás el archivo de proteus para simulación?

  • @pabloquisperamos9389
    @pabloquisperamos9389 6 лет назад

    Wels. La libreria que usas del LCD quien lo proporciona? Y por que lo añades tanto en SOURCE FILE Y HEADER FILE? Cual es la diferencia?

    • @Wels_Theory
      @Wels_Theory  6 лет назад

      Yo modifiqué esa librería del LCD, en la descripción están los archivos. El header file es donde defino variables y funciones que haré. Source file es donde creo la lógica que tiene esas funciones.
      Por ejemplo: en Header digo que defina la funciona Suma(int a, int b); En Source le doy la lógica a la función Suma(){a + b;}

    • @pabloquisperamos9389
      @pabloquisperamos9389 6 лет назад

      AH YA! Gracias por la respuesta wels.

  • @angelmelendez5256
    @angelmelendez5256 6 лет назад

    No tendras videos trabajando el pic 18f4550 en assembler ?

  • @1713jean
    @1713jean 5 лет назад

    Hola, una pregunta, por que desactivas el habilitador de las interrupciones globales, y luego mas abajo lo vuelves activar?

    • @Wels_Theory
      @Wels_Theory  5 лет назад

      Hola, en realidad creo que no debí desactivarla pero en ese momento pensé que era buena idea por si en algún momento ocurre una interrupción. Así que desactivo todo, establezco la configuración y luego vuelvo a activar las interrupciones

  • @lorenrus
    @lorenrus 4 года назад

    Hi , can you say me what is 65535 and how have you calculate x ? Thank you

    • @steipingenieria322
      @steipingenieria322 4 года назад

      65535 is the resolution of timer (16bits) or 2^16= 65536

  • @moisesmorales2278
    @moisesmorales2278 7 месяцев назад

    Como hago el temporizador a 10 min?

  • @sbqz00
    @sbqz00 6 лет назад

    ¿Cómo hago para activar el timer sin necesidad de un pulsador? Actualmente estoy haciendo un proyecto y necesito controlar el giro del motor de manera independiente.

    • @Wels_Theory
      @Wels_Theory  6 лет назад

      Calculas el temporizador y activas las interrupciones, con eso cada vez que el tiempo pase te genera una interrupción y haces lo que necesitas

    • @steipingenieria322
      @steipingenieria322 4 года назад

      TMR0ON desde la función setup junto a los registros de conteo TMROL y H y ya queda enclavado desbordando periódicamente al tiempo que calculaste. Como tal solo con el registro TMR0ON lo pueden apagar y activar cuando quieras y donde requieras

  • @santiagovelez416
    @santiagovelez416 5 лет назад

    SI A ALGUNO LE INTERESA EXISTE UNA APLICACIÓN PARA EL COMPUTADOR QUE SE LLAMA TIMER-CALCULATOR QUE SIRVE PARA CONFIGURAR LOS TIMERS A LA FRECUENCIA QUE DESEEN Y EL TIEMPO QUE DESEAN LO RECOMIENDO
    www.mikroe.com/timer-calculator

  • @raulalegria1060
    @raulalegria1060 5 лет назад

    hola, para quue sirve el LAT ??

    • @Wels_Theory
      @Wels_Theory  5 лет назад

      Para escribir en los puertos si es que quieres que salga un 1 o un 0

    • @raulalegria1060
      @raulalegria1060 5 лет назад

      @@Wels_Theory muchas gracias, si estuve investigando , muy bueno tus tutoriales, gracias!!!!

  • @jesusespinoza6644
    @jesusespinoza6644 6 лет назад

    buenas tardes wels, cuando compilo me sale un error en la funcion de interrupcion, este : newmain.c:112:6: error: variable has incomplete type 'void'
    void interrupt ISR_TIMER_0 (void)...... he estado leyendo en algunos foros y dicen que puede ser por la sitanxis enla version de xc8, yo tengo la version 2.00. Espero puedas ayudarme. Buen video!!!

    • @Wels_Theory
      @Wels_Theory  6 лет назад +1

      Cámbialo por esto: void __interrupt isr_timer0 (void)
      He agregado los __ (son dos). La versión del compilador es el que da el problema

    • @jesusespinoza6644
      @jesusespinoza6644 6 лет назад

      Si gracias wels era eso :)

    • @jhonortega3661
      @jhonortega3661 5 лет назад

      hola Wels. A mi tambien me sale ese mismo error y ya hice lo que sugeriste pero igual me sale error :(

    • @luisav5460
      @luisav5460 4 года назад +2

      @@jhonortega3661 no sé si aún te sirva pero me pasó igual y lo cambie por: void __interrupt () ISR_timer0

  • @amcaamca4584
    @amcaamca4584 4 года назад

    cual es su correo ?

  • @facundonieto1598
    @facundonieto1598 5 лет назад

    Buen video, lástima la señora que canta de fondo

  • @pictrance
    @pictrance 6 лет назад +2

    y el audio??
    se oye mas el intro y tu casi no

    • @Wels_Theory
      @Wels_Theory  6 лет назад

      PicTrance Hola, te refieres en la introducción? O después del intro? La primera parte no hablo hasta después del "que haremos", cuando dibujo si tengo problemas con el audio ( lo siento :c) después de eso cuando desarrollo el programa yo creo que se escucha bien o cuéntame en qué minuto para tenerlo en cuenta en el siguiente vídeo.