collapse

* Posts Recentes

Bibliotecas para arduino e drivers de stepper - o problema da 'distracção' por SerraCabo
[Ontem às 23:27]


Zener BZW04-105? por brunus
[Ontem às 17:34]


Artigo 11, 13 e os restantes por jm_araujo
[10 de Dezembro de 2018, 11:05]


Compra Colectiva Mouser N3-2018 (limite 25 Nov) por Hugu
[10 de Dezembro de 2018, 01:07]


Ajuda para reparar Luzes de LED de Natal por brunus
[09 de Dezembro de 2018, 00:59]


Como reproteger as pontas de cobre do ferros de soldar? por brunus
[09 de Dezembro de 2018, 00:12]


Usar steppers de 5 pontas como se fossem de 4 pontas por SerraCabo
[08 de Dezembro de 2018, 21:18]


LusoRobótica - Website - Estado actual por Tech_JA
[06 de Dezembro de 2018, 09:18]


Como transformar um mosquito killer de tomada em um portátil? por brunus
[05 de Dezembro de 2018, 23:28]


LR, passado, presente e futuro por iyahdub
[05 de Dezembro de 2018, 04:16]

Autor Tópico: [PIC18F4580] Timer2 contar microsegundos  (Lida 1596 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline domitek

  • Mini Robot
  • *
  • Mensagens: 34
[PIC18F4580] Timer2 contar microsegundos
« em: 02 de Junho de 2012, 23:56 »
Boas,
Pessoal estou com um pequeno problema.... quero por o timer2 a contar 200us... já consegui acerta-lo para os 200us.... mas no inicio ele varia um bocado.... depois de alguns ciclos ele começa a funcionar.. correcto para 200us!
Alguem sabe o porque da variaçao no inicio?
estou a utilizar esta configuração:
TMR2=0xDA;
T2CON =  0b00000011;
T2CON |= 0b00000100;//activar timer 2
os tempos foram medidos recorrendo ao simulador do mplab, utilizando o stopwatch..

Obrigado!
« Última modificação: 10 de Junho de 2012, 20:04 por domitek »

Offline bsccara

  • Mini Robot
  • *
  • Mensagens: 6
Re: [PIC18F4580] Timer2 contar microsegundos
« Responder #1 em: 03 de Junho de 2012, 03:16 »
TMR2 é o contador propriamente dito; o que queres inicializar é o PR2, que é o período (valor limite). E com essa configuração do T2CON estás a meter um prescaler de 1/16 à frente.

Offline domitek

  • Mini Robot
  • *
  • Mensagens: 34
Re: [PIC18F4580] Timer2 contar microsegundos
« Responder #2 em: 03 de Junho de 2012, 16:41 »
Boas,

Antes de mais, obrigado pela ajuda!
Sim eu sei que estou a usar um prescaler... mas mesmo sem prescaler ele faz a mesma variação....
a minha pergunta é sera que consigo medir 100us ou 200us com precisão???

Cumps

Offline bsccara

  • Mini Robot
  • *
  • Mensagens: 6
Re: [PIC18F4580] Timer2 contar microsegundos
« Responder #3 em: 03 de Junho de 2012, 20:26 »
O que é que queres fazer ? Um atraso ou um evento periódico a cada 200us ?

Se fôr um evento periódico:

Se estiveres a usar um relógio de 40 MHz para o PIC e com o prescaler de 1/16 terás uma resolução de 1/(40/4/16) uS = 1.6 uS, o que dará um período máximo do Timer2 de 408 uS. Podes programar o PR2 com 125 para um período de 200uS.

Não te esqueças que:

1) Existe um período de latência entre o Timer2 disparar e a execução do código do ISR.
2) 100 uS dá para executar no máximo 1000 instruções do PIC, com um relógio de 40MHz

Offline domitek

  • Mini Robot
  • *
  • Mensagens: 34
Re: [PIC18F4580] Timer2 contar microsegundos
« Responder #4 em: 04 de Junho de 2012, 21:21 »
Boas,

é um evento periódico... consegui programar para 160us medidos com o stopwatch... o cristal é de 20M... não sei é se na pratica irá dar mal..... mas só amanha é que posso testar....
o mais interessante é que a oscilação no principio desapareceu do nada... estou a por 0xDA na mesma.... não sei se é o MPlab a passar-se.....

cumps