TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: IngRandall en 12 de Marzo de 2012, 13:22:22

Título: Timer en PIC24
Publicado por: IngRandall en 12 de Marzo de 2012, 13:22:22
Hola amigos del foro, es que estoy haciendo una temporizacion con el Timer 2 del PIC 24FJ128GA010, pero no se muy bien como saber cuanto tiempo es teóricamente si utilizo el timer, es que la verdad poco he utilizado el timer pero esta vez me toco así :(. el Preescaler esta configurado así Fosc/2, prescaled 1:256, ojala me puedan ayudar.
Título: Re: Timer en PIC24
Publicado por: solapower en 12 de Marzo de 2012, 13:33:04
Preba este enlace en la web de Redpic http://picmania.garcia-cuervo.net/recursos.php
tiene una magnifica calculadora para los timers de 8 y 16 bit.
Espero te sirva como a mi que doy las gracias a Redpic por ella.

Saludos
Título: Re: Timer en PIC24
Publicado por: Suky en 12 de Marzo de 2012, 13:57:02
Exactamente como lo configuraste? Y en base a eso, viendo el datasheet (o manual de referencia), que temporización calculaste?
Título: Re: Timer en PIC24
Publicado por: IngRandall en 12 de Marzo de 2012, 14:01:00
es que en realidad eso me lo pasaron y quiero saber como se calcula, mira,

T2CON = 0x8030;

allí esta una imagen para q veas el datasheet.

 :?
Título: Re: Timer en PIC24
Publicado por: KALLITOS en 12 de Marzo de 2012, 14:48:15
Hola Ing Randall, te muestro como lo hago:

Timer1 prescaler a 256

#define MIPS  40.0

PR1 = MIPS/256*10000;         ////10 ms de tiempo del timer1

saludos
Título: Re: Timer en PIC24
Publicado por: Suky en 12 de Marzo de 2012, 16:13:57
Bueno, muy complicado no es.

El timer cuenta 1 cada (1/(Fosc/2))x256. Y se resetea al llegar a PR2=?..  :tongue:

Busca por la red teoría sobre los timer, hay muuucho!  ;-)
Título: Re: Timer en PIC24
Publicado por: IngRandall en 12 de Marzo de 2012, 17:02:05
aaaaaaaaaaaaaaa yaaaaaaaaaaaaaaaaaaaa... jajajajaja al parecer e faltaba el PR2, hice una pequeña prueba y funciono perfecto, vamos a ver como me va y les comento, gracias.
Título: Re: Timer en PIC24
Publicado por: IngRandall en 12 de Marzo de 2012, 18:03:05
El señor AngelGris puso lo siguiente:

Citar
A ver si puedo tratar de explicar el asunto...

FCY = 40Mips -> 40MHz -> que cada ciclo de instrucción dura 1/40M -> 25nS

El timer queda contando dichos pulsos pero con un divisor (prescaler) de 256, por lo tanto cada 256 pulsos sólo se incrementará en 1. Si ahora multiplicamos por el período que vos pusiste nos da 25nS * 256 * 65535 = 419.424ms

La idea es, duración el pulso * prescaler * periodo = tiempo total de la cuenta

osea que si eso es valido y transportamos eso a mi ejemplo, tendríamos que:

Mi oscilador es de 8MHz.

FCY = 8Mips -> 8MHz -> que cada ciclo de instrucción dura 1/8M -> 1.25uS

1.25uS * 256 * 65535 = 20.9712s

Esto es cierto???
Título: Re: Timer en PIC24
Publicado por: KALLITOS en 12 de Marzo de 2012, 21:51:52
Según mis calculos:

MIPS = 8.0
PRESCALER = 256
TIEMPO en us = 65535

PR2 = MIPS/PRESCALER * TIEMPO;
PR2 salio 2047

Simulando, el tiempo resulto 65.535875 ms, probado en MPLAB.
No encuentro el apunte de como llegué a esa formula, pero siempre me ha funcionado.

saludos
Título: Re: Timer en PIC24
Publicado por: IngRandall en 13 de Marzo de 2012, 10:16:55
Hola KALLITOS, utilice la formula que me pasaste y me funciono muy bien, ya probé con un timer de 1 seg y funciono, muchas gracias.
Título: Re: Timer en PIC24
Publicado por: KALLITOS en 13 de Marzo de 2012, 11:36:38
Que bueno.

saludos.