Autor Tema: Ayuda con una temporizacion  (Leído 2989 veces)

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

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Ayuda con una temporizacion
« en: 24 de Junio de 2008, 04:53:00 »
Hola.
He preparado una rutina de pausa de 40ms pero veo que despues de salir de la rutina el TMR0 sigue activo. He buscado en los ejemplos pero no he visto la solución. Aqui dejo la rutina:

PAUSA
      ;-------- pausa 40ms ----
      MOVLW   .100
      MOVWF   TMR0
      BSF      STATUS,5   ;banco 1
      MOVLW   b'00000111'   ; prescaler 256 al TMR0
      MOVWF   OPTION_R
      BCF          STATUS,5           ;banco 0
DESBO   BTFSS   INTCON,2
      GOTO   DESBO
      BCF      INTCON,2            ;restablezco flag
      
      RETURN
      ;------------------

Gracias.

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2569
Re: Ayuda con una temporizacion
« Respuesta #1 en: 24 de Junio de 2008, 05:09:04 »
El TMR0 es un contador ascendente reversible que cuando se desborda vuelve a empezar y no para nunca (solo para en modo sleep).

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Re: Ayuda con una temporizacion
« Respuesta #2 en: 24 de Junio de 2008, 05:16:39 »
Aaaaacabaramos, ya podía estar buscandole las vueltas.

Muchas gracias pocher por la aclaración.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Ayuda con una temporizacion
« Respuesta #3 en: 24 de Junio de 2008, 10:22:48 »
El tmr0 puede trabajar en dos modos: contador y temporizador. Tú lo estás usando como temporizador, entonces incrementa cada ciclo de instrucción o si lo tienes con pre-escala cada cierta cantidad de ciclos... para detenerlo podrías cambiar a modo contador. Haciendo:
Código: ASM
  1. bsf option_reg,5
Bueno es una idea.
Saludos, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Ayuda con una temporizacion
« Respuesta #4 en: 24 de Junio de 2008, 10:53:34 »
Muy buena idea firepic, pero tienes que tener cuidado, porque en modo contador utiliza el puerto RA4. Si no utilizas este bit, es buena idea, porque hasta que no cambie de nivel, el contador, no se incrementará, pero si utilizas este pin, como entrada o como salida, cada vez que el bit RA4, cambie su nivel, el contador incrementará.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Re: Ayuda con una temporizacion
« Respuesta #5 en: 24 de Junio de 2008, 11:34:59 »
Ok, gracias a todos, la cosa es que no me interfiera en nada.
Gracias.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Ayuda con una temporizacion
« Respuesta #6 en: 24 de Junio de 2008, 11:36:06 »
Tienes razón Leon, se me olvidó aclarar ese punto.
Para asegurar que de verdad no incremente más nunca el tmr0, el RA4 debería estar conectado a masa. De ese modo no habría nunca un cambio de nivel.
Es decir, esta opción funciona siempre que tengas "desactivado" al RA4.
Ok saludos, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web