TIMER1

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

TIMER1

Mensagempor antonio » 28 Mar 2007 05:04

PESSOAL TUDO BEM !!

tenho aqui umas duvidas do qual queria tirar !!

Tenho estado a ler um pouco sobre interrupçoes , de tal modo que encontrei isto abaixo sobre o TIMER1 mas nao consigo entender direito;

"Um TIMER1 de 16 bits a 8Mhz se incrementa a cada ciclo de intrução, do qual gera um interrupçao a cada 32768us"

O que nao consigo entender è os calculos !

Quanto tempo demora um ciclo de intruçao para que gera a interrupçao a cada 32768us?

No codigo em baixo o que eu entendo é que a cada 32768us a variavel "v" é incrementada en 1, este raciocinio esta correto?

Agora se eu quiser fazer do TIMER1 um contador Como devo fazer?

E como fazer do TIMER1 um temporizador como proceder?


#INT_TIMER1
tmr_handler() {
++v;
}

Pessoal agradeço forte se estas duvidas poder ser esclerecidas!
Abraços
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Mensagempor MOR_AL » 28 Mar 2007 08:02

Olá antonio!

Frequência do oscilador (FO) = 8.000.000 Hz
Frequência do clock (FC) = FO / 4 = 8.000.000 / 4 = 2.000.000
Período de cada clock (PC) = 1 / FC = 1 / 2.000.000 = 0,5us
Número de contagens máxima do registro do TIMER1 (NT1) = 2 elevado a 16 = 65.536.
Tempo para contar 65.536 pulsos = PC x NT1 = 0,5us x 65.536 = 32768 us.
MOR_AL
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor Adauto sampaio » 28 Mar 2007 09:11

Deixa eu pegar carona no tópico e tentar esclarecer uma dúvida. Como faço para escrever no TMR1 do 16F873A usando ASM? Coloco os dados na forma binária ou decimal em cada registrador? Agradeço já a colaboração e paciência de todos.



MOR_AL escreveu:Olá antonio!

Frequência do oscilador (FO) = 8.000.000 Hz
Frequência do clock (FC) = FO / 4 = 8.000.000 / 4 = 2.000.000
Período de cada clock (PC) = 1 / FC = 1 / 2.000.000 = 0,5us
Número de contagens máxima do registro do TIMER1 (NT1) = 2 elevado a 16 = 65.536.
Tempo para contar 65.536 pulsos = PC x NT1 = 0,5us x 65.536 = 32768 us.
MOR_AL
É tudo uma questão de sorte; pergunte a qualquer perdedor
Adauto sampaio
Byte
 
Mensagens: 123
Registrado em: 07 Jan 2007 16:02

Mensagempor fabim » 28 Mar 2007 09:17

rsrs.
timer H e L.
vc pode escrever
decimal, binario, hexa.. aí vai de sua vontade.
H = 8 bits = de 0 a 255
L = 8 bits = de 0 a 255

Agora se vc vai escrever .255 ou '11111111' ou 0xff..

tanto faz..

Fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Adauto sampaio » 28 Mar 2007 09:52

hehe. Valeu Fabim, vo martela um pouco aki e depois te conto


fabim escreveu:rsrs.
timer H e L.
vc pode escrever
decimal, binario, hexa.. aí vai de sua vontade.
H = 8 bits = de 0 a 255
L = 8 bits = de 0 a 255

Agora se vc vai escrever .255 ou '11111111' ou 0xff..

tanto faz..

Fabim
É tudo uma questão de sorte; pergunte a qualquer perdedor
Adauto sampaio
Byte
 
Mensagens: 123
Registrado em: 07 Jan 2007 16:02

Mensagempor egb » 28 Mar 2007 17:38

Aproveitando o embalo do titulo do topico pergunto:

Estava precisando de um relógio, então pensei em duas soluções:
1 - usar o timer1 do 16f877a para gerar interrupcoes e usar contadores para gerar segundos, minutos e horas data enfim.

2 - comprar um ds1302.

Queria saber se tem como usar a solução 1 com um bom desenpenho e confiabilidade similar a solução 2.

Ou pelo menos, como fazer para o timer1 trabalhar de forma mais precisa possivel, em termos de qual Cristal, prescaler, valor de TMR1 ?

esse foi meu primeiro post!!! parabens pelo forum :wink:
egb
Bit
 
Mensagens: 12
Registrado em: 27 Mar 2007 15:05

Mensagempor antonio » 29 Mar 2007 04:35

Colegas!!

Agradeço mais uma vez a todos que colaboraram e ajudaram !

até
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Mensagempor fabim » 29 Mar 2007 08:00

egb.
Vou te ser sincero, relogio usando os contadores internos do pic...
Olha, muito trampo, o cristal tem que ser o mais mió di bom..

Agora usar um DS SMD minusculo com um cristalzinho de 32.768hz, vai te poupar muito tempo e muita dor de cabeça, e muito mais confiavel.
Agora se o ambito do circuitinho é para aprender a usar os timers, aprender a calcular configurar etc, aí sim vá em frente.

Fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor egb » 29 Mar 2007 09:41

Valeu Fabim,

Então vou partir pra solução do DS1302 mesmo.
egb
Bit
 
Mensagens: 12
Registrado em: 27 Mar 2007 15:05

Mensagempor microeletronica » 03 Abr 2007 06:37

Posso ajudar com o codigo do RTC externo.
Qualquer duvida, entre em contato.

[]s.
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x