collapse

* Posts Recentes

O meu plano para produzir fotograficamente circuito impresso por SerraCabo
[Ontem às 21:06]


Making Linear Ball Way Cages por jm_araujo
[14 de Agosto de 2018, 23:03]


TV Antiga Desliga-se por almamater
[14 de Agosto de 2018, 12:34]


Tubo PVC 32mm Branco por SerraCabo
[10 de Agosto de 2018, 22:49]


Ajuda para contruir uma "máquina" de fisioterapia para a minha filha. por Hugu
[08 de Agosto de 2018, 00:47]


Comprar solda decente por jm_araujo
[07 de Agosto de 2018, 11:30]


Telescopio por kieferdl
[03 de Agosto de 2018, 10:10]


Com que equipamento costumam aceder ao LR? por KammutierSpule
[01 de Agosto de 2018, 10:14]


BostonDynamics - Vai uma mãozinha? por jm_araujo
[01 de Agosto de 2018, 08:29]


Baby's got blue eyes por jm_araujo
[30 de Julho de 2018, 22:55]

Autor Tópico: medir tempo que 1 pino esta "high"  (Lida 3682 vezes)

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

Offline oxytech

  • Mini Robot
  • *
  • Mensagens: 75
medir tempo que 1 pino esta "high"
« em: 09 de Março de 2010, 22:30 »
boas!

não conhecem nenhuma função que meça o tempo que um pino esteja a 5v? tenho uma vaga ideia de já ter visto uma função assim, mas já procurei por todo o lado e não consigo encontrar...

gostava de não ter que utilizar outras "técnicas"  ;D

cumprimentos
« Última modificação: 10 de Março de 2010, 20:06 por oxytech »

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.746
Re: medir tempo que 1 pino esta "hight"
« Responder #1 em: 09 de Março de 2010, 23:28 »
Já agora quais eram as outra técnicas?
1-Se queres uma coisa muito rigorosa vais ter que usar interrupções, isto é, crias uma interrupção externa para uma determinada mudança de estado nesse pino e depois usas um timer para ir contando enquanto ele não vai a zero.
2-Outra hipótese sem usar uma interrupção externa é no teu loop começar sempre por fazer if(pin=hight) e se for verdade iniciar um timer.

Tens aqui algumas informações sobre timers no Arduino assim como interrupções, eu supus que usas Arduino.
http://www.arduino.cc/playground/Main/MsTimer2
http://gonium.net/md/2006/12/20/handling-external-interrupts-with-arduino/

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: medir tempo que 1 pino esta "hight"
« Responder #2 em: 09 de Março de 2010, 23:34 »
 http://www.arduino.cc/playground/Code/Stopwatch <-- aquele código pode ser modificado para o que queres.

Offline oxytech

  • Mini Robot
  • *
  • Mensagens: 75
Re: medir tempo que 1 pino esta "hight"
« Responder #3 em: 10 de Março de 2010, 10:02 »
Já agora quais eram as outra técnicas?
1-Se queres uma coisa muito rigorosa vais ter que usar interrupções, isto é, crias uma interrupção externa para uma determinada mudança de estado nesse pino e depois usas um timer para ir contando enquanto ele não vai a zero.
2-Outra hipótese sem usar uma interrupção externa é no teu loop começar sempre por fazer if(pin=hight) e se for verdade iniciar um timer.

Tens aqui algumas informações sobre timers no Arduino assim como interrupções, eu supus que usas Arduino.
http://www.arduino.cc/playground/Main/MsTimer2
http://gonium.net/md/2006/12/20/handling-external-interrupts-with-arduino/

neste caso particular não preciso de muito rigor.
o que estava a pensar era algo do tipo:

var=millis();
while(pin=high){
         var2=millis();}

time=var-var2;

mas mesmo assim acho que vou dar uma leitura nas interrupções  8)

obrigado a todos
 
« Última modificação: 10 de Março de 2010, 20:07 por oxytech »

Offline p0wd3r

  • Mini Robot
  • *
  • Mensagens: 74
Re: medir tempo que 1 pino esta "hight"
« Responder #4 em: 10 de Março de 2010, 10:34 »
Já agora quais eram as outra técnicas?
1-Se queres uma coisa muito rigorosa vais ter que usar interrupções, isto é, crias uma interrupção externa para uma determinada mudança de estado nesse pino e depois usas um timer para ir contando enquanto ele não vai a zero.
2-Outra hipótese sem usar uma interrupção externa é no teu loop começar sempre por fazer if(pin=hight) e se for verdade iniciar um timer.

Tens aqui algumas informações sobre timers no Arduino assim como interrupções, eu supus que usas Arduino.
http://www.arduino.cc/playground/Main/MsTimer2
http://gonium.net/md/2006/12/20/handling-external-interrupts-with-arduino/

neste caso particular não preciso de muito rigor.
o que estava a pensar era algo do tipo:

var=millis();
while(pin=hight){
         var2=millis();}

time=var-var2;

mas mesmo assim acho que vou dar uma leitura nas interrupções  8)

obrigado a todos

Sim, tenta usar preferencialmente interrupções! Ou a externa que podes configurar como a queres usar ou então vê se o micro tem portos que activem a interrupção por mudança de estado desses portos.

Offline VascoP

  • Mini Robot
  • *
  • Mensagens: 66
Re: medir tempo que 1 pino esta "hight"
« Responder #5 em: 10 de Março de 2010, 18:41 »
High.



 ;D

Offline oxytech

  • Mini Robot
  • *
  • Mensagens: 75
Re: medir tempo que 1 pino esta "hight"
« Responder #6 em: 10 de Março de 2010, 20:05 »