Autor Tema: 6 HORAS USANDO EL TMRO  (Leído 4224 veces)

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

Desconectado morfeus

  • PIC12
  • **
  • Mensajes: 78
6 HORAS USANDO EL TMRO
« en: 02 de Abril de 2008, 15:42:00 »
Hola amigos del foro,

Estoy tratando de temporizar 6 horas para que una vez finalizado el tiempo encienda un led  con el uso de TMRO del pic pero no lo he logrado alguno de ustedes puede ayudarme con algún ejemplo. Agradezco cualquier colaboración que puedan darme.

Gracias


Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: 6 HORAS USANDO EL TMRO
« Respuesta #1 en: 02 de Abril de 2008, 15:52:30 »
Y como es que lo estabas haciendo?

Saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: 6 HORAS USANDO EL TMRO
« Respuesta #2 en: 02 de Abril de 2008, 15:58:27 »
Deberás jugar con el tiempo que tarda en desbordar el TMR0 y hacerlo repetir tantas veces hasta llegar al timepo deseado. Te adjunto la fórmula para trabajar con el mismo. Lo saqué de este foro y no recuerdo de quien es, or lo que no me animo a dar un nombre. Si no lo entiendes avisa.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado morfeus

  • PIC12
  • **
  • Mensajes: 78
Re: 6 HORAS USANDO EL TMRO
« Respuesta #3 en: 02 de Abril de 2008, 16:54:29 »
Deberás jugar con el tiempo que tarda en desbordar el TMR0 y hacerlo repetir tantas veces hasta llegar al timepo deseado. Te adjunto la fórmula para trabajar con el mismo. Lo saqué de este foro y no recuerdo de quien es, or lo que no me animo a dar un nombre. Si no lo entiendes avisa.

Hola,
Bueno voy a tratar de temporizar algo bien sea 5 minutos o 10 para luego incrementar el tiempo, estoy muy entusiasmado con esto del assembler si tengo algun problema les escribo para que men otra ayudita.

Muchas gracias

Desconectado morfeus

  • PIC12
  • **
  • Mensajes: 78
Re: 6 HORAS USANDO EL TMRO
« Respuesta #4 en: 05 de Abril de 2008, 16:15:07 »
Hola amigos,

He logrado mediante el siguiente codigo temporizar 50 segundos solamente hay un pulsador en RA2 que al recibir un pulso lógico 1 activa la cuenta del temporizador encendiendo un led en RB5. Traté de temporizar 5 minutos pero no lo logre luego traté con 1 hora y no lo conseguí.

Si alguien puede darme una manito se lo agradezco porque estoy muy confundido con el código.

Adjunto el código

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: 6 HORAS USANDO EL TMRO
« Respuesta #5 en: 05 de Abril de 2008, 22:11:24 »
Tienes que repetir tantas veces la interrupción para lograr los 21600 seg (6 horas).

En tu ejemplo, estás haciendo la interrupción cada 10ms o sea, 0.01seg. (tmr0). Ahora tenemos que lograr 21600 seg.

haciendo una regla de 3 simple obtenemos que hay que repetir el desborde unos 2160000 veces.

Cada bit de la RAM es de 255, entonces ta va a ocupar 8471pociciones de la RAM, Pero esto es una locura. Lo que tienes que hacer es repetir el vaciado (poner a 0 todos los bit) de una pocición de la RAM, 847 veces con el valor 255 inicialmente y luego una mas de 15, todas en decimal.

¿Cómo llegue a estos valores? es facil.

Partimos desde donde obtuve las veces a repetir para lograr los 21600 seg:


Vamos con la regla de 3 simple:

1 repetición obtenemos  0,01seg
X                  21600 seg

Nos queda así:  (21600 x 1)/0,1= 2160000 repeticiones

Ahora para contar las repeticiones, disponemos pociciones de RAM de 255 (decimal) Si dividimos este valor por las repeticiones, nos dá la cantidad de pocición de memoria a utilizar, pero en realidad, lo utilizaremos para hacer una multiplicación, volvemos, nos queda así la fórmula: 2160000/255=8470,58 Lo que nos da 8471 pociciones de memoria, o las veces a multiplicar, pero como nos dió con decimal tendremos que multiplicar 255 (decimal) x 8470 = 2159850 rep, y nos falta 150 repeticiones más para obtener los 2160000 rep o 21600 seg

2160000 - 2159850 = 150


Y así se obtuvo los valores

ahora ¿como lo hago en el programa?, facil, al Reg 1 lo cargas con el valor 8470 (decimal) y a Reg2 con el valor 255 (decimal) pero solo acepta hasta 255 (decimal) debemos agregar una nueva fórmula y es 8470/255=33.21, esto nos dice que deberas descargar 33 veces al registro reg1 con el valor 255 y luego una vez más con el valor 55 y así obtubimos los primeros 8470 veces y ahora nos falta deberas cargar a Reg1 con el valor 150 y de nuevo a Reg2 con el valor 255, cuando se terminó de descargar por segunda vez reg2, habrás obtenido la 6 horas y con solo 2 pociciones de la RAM

Ahora te dejo a ti, para que hagas el programa y como consejo que busques un valor inicial para cada desbordamiento del tmr0 un valor más adecuado para hacer menos repeticiones y anular esta última de 15 repeticiones.

Revisa de nuevo la fórmula y el ejemplo que hay en el archivo adjuntado y encontraras la manera, pero asegurate deentender todos los pasos que hiso el autor.
« Última modificación: 08 de Abril de 2008, 00:48:50 por Leon Pic »
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado morfeus

  • PIC12
  • **
  • Mensajes: 78
Re: 6 HORAS USANDO EL TMRO
« Respuesta #6 en: 06 de Abril de 2008, 18:37:38 »
Hola Leon Pic,

Ok pondré en practica lo que me dices voy  a quemar unas neuronitas y luego te cuento como me fue.

Saludos

Desconectado LuNaTk

  • PIC10
  • *
  • Mensajes: 27
Re: 6 HORAS USANDO EL TMRO
« Respuesta #7 en: 07 de Abril de 2008, 00:39:15 »
Hola.

LeonPic esta excelente tu análisis, solo una aclaracion.  1 hora = 3600 seg.   6 horas = 21600 seg.
10 ms = 0.01 seg
Cuando mas dificil es.... Mas grande el triunfo!!!

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: 6 HORAS USANDO EL TMRO
« Respuesta #8 en: 07 de Abril de 2008, 11:31:02 »
Con respecto a cuanto seg tiene 6 horas, me equivoqué y lo saqué por 1 hora  :mrgreen: . Hay que corregir este cálculo. Tienes razón y 6 horas son 21600 seg.

Con respecto a los 10 ms, está bien.


1 seg         100 ms
x               10 ms

x=10/100   x=0.1seg


Lo voy a corregir para que no alla mas confución.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado LuNaTk

  • PIC10
  • *
  • Mensajes: 27
Re: 6 HORAS USANDO EL TMRO
« Respuesta #9 en: 07 de Abril de 2008, 14:09:12 »
Pues yo que sepa, aqui no aplica como el sistema metrico, el prefijo m (mili 1000) se refiere a un Exponente (-3).

En un metro si hay 100 cm (Centi 100), pero en un segundo existen 1000 milisegundos; por un momento lo dude, pero ya estoy seguro de que asi es.  :mrgreen:

1 seg  1000 ms
x        10    ms

x= 10 / 1000      x=0.01 seg.
Cuando mas dificil es.... Mas grande el triunfo!!!

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: 6 HORAS USANDO EL TMRO
« Respuesta #10 en: 08 de Abril de 2008, 00:32:58 »
Ja, en realidad me rio, porque tienes razón. 1 seg tiene 1000 milisegundos. De echo lo tube que buscar porque no me cerraba los cálculos, ya que yo temporizé un programa haciendo ese cálculo y se ve que me dió el resultado que esperaba porque le debo haber sacado un cero algún otro número.

Pero bueno, hay que modificar de nuevo el cálculo, y te doy gracias por hacer notar el error.  8) 8)
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado LuNaTk

  • PIC10
  • *
  • Mensajes: 27
Re: 6 HORAS USANDO EL TMRO
« Respuesta #11 en: 08 de Abril de 2008, 01:52:08 »
De nada Amigo, eso nos pasa a cualquiera; son descuidos que, despues, como en tu caso, nos dan risa...

Cuando mas dificil es.... Mas grande el triunfo!!!