Página 1 de 1

TMRO->formulas

MensagemEnviado: 29 Set 2007 19:36
por antonio
Pessoal tudo bem!!

Tenho andando a tentar fazer algo com os TIMRS mas nao tenho consegido nada de bom como resultados !
Eu esteve vendo os datasheets em relaçao aos TIMERs e chegei a conclusao que os calculos para trabalhar com os TIMERS era como eu tenho em baixo postado ,mas como nao tenho bons resultados com o tempo nos PICS,

Pergunto aos colegas se realmente estes calculos estao certos??

Por favor; se tem alguma coisa errado gostaria que corregui-sem e se possivel comenta-sem o que estava errado!

O que eu pertendo è....calcular o tempo que leva o TMR0 a contar o tempo que vai de 0...a 255 com e sem preescaler!

Assim como para um determinado tempo qual o valor a cargar no TMR0com e sem preecaler

Peço a compriençao de todos

Forte abraço


**formula para determinar o tempo de contagem do TMR0***********
com e sem prescaler

time = (1/ Fosc) * 4 * Preescaler * value "FORMULA
time = ( 1/(4.000.000) * 4 * 256 * 100 CALCULOS
time = 25,6 ms RESULTADO


**formula para determinar o valor a cargar no TMR0****************

valor = ( time * F osc/4) / ( Preescaler ) " FORMULA
valor= (0.0256 s *4000000/4) / (256) =100 CAlCULOS

********************Sem preescaler***************************

valor = 256-( time * F osc/4) " FORMULA
valor = 256-(0.0256 s *4000000/4) =25600 CAlCULOS
valor =256-25.600 = 230.4

MensagemEnviado: 29 Set 2007 19:48
por fabim
sei eu coisa muita sobre timer´s pic dos.
ideal seria voce se posta-se aplicação uma para entender melhor que o quer.

Fabim

MensagemEnviado: 29 Set 2007 21:58
por KrafT
Antonio, os timer's do PIC são tão complicados quanto tua ortografia...

É incrível que ainda haja chips que contam para cima e sem auto-reload...

Eu uso: frequency of interrrupt = (clock/(4*preescaler))/(256-reload)

O reload deve compensar o tempo perdido para a atender a interrupção.

Em C ficaria assim:
set_timer0(reload-get_timer0());

MensagemEnviado: 30 Set 2007 04:14
por antonio
Pessoal agradeço aos dois por responderem!¨

Fabim e Kraft nao tenho aplicaçao em concreto eu so estou treinando paara ver como funciona este negocio com os timers

Tenho o livro do Fabio mas tem me ajudado pouco.posso dizer que com releçao ao datasheets entou muinto confuso!

Ainda estou voanda nesta dos timers , toda ajuda é bem-vinda !

até

MensagemEnviado: 30 Set 2007 08:52
por fabim
exemplo pratico pra se fazer os calculos de coco.

exemplo um clock de 4mhz...

o pic executa tudo com 1/4 disso, ou seja 1mhz = 1uS.

o timer 1 por exemplo tem 16 bits certo.

65536 * 0.000 0001 * presscaler..

exemplo 10 000.
10 000 * 0. 000 001 * 128 = 1,28 Segundos.

e por aí vai.. so muda alguma coisinha besta de um pra outro.

fabim

MensagemEnviado: 01 Out 2007 23:24
por wgc
hora, tambem tava tentando ajudar os meninos aqui com os timers e eu nao entendi mais nada. Alias to lendo o material que encontrei agora,

http://www.garcia-cuervo.com/picmania.g ... en_C_1.php


Tentei compila aqui mas ta dando alguns erros.


Se eu conseguir medi um pulso e manda pela serial com o 16f628 ja vou ficar bem feliz.