LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: oxytech em 09 de Março de 2010, 22:30

Título: medir tempo que 1 pino esta "high"
Enviado por: oxytech 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
Título: Re: medir tempo que 1 pino esta "hight"
Enviado por: metRo_ 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://www.arduino.cc/playground/Main/MsTimer2)
http://gonium.net/md/2006/12/20/handling-external-interrupts-with-arduino/ (http://gonium.net/md/2006/12/20/handling-external-interrupts-with-arduino/)
Título: Re: medir tempo que 1 pino esta "hight"
Enviado por: amando96 em 09 de Março de 2010, 23:34
 http://www.arduino.cc/playground/Code/Stopwatch (http://www.arduino.cc/playground/Code/Stopwatch) <-- aquele código pode ser modificado para o que queres.
Título: Re: medir tempo que 1 pino esta "hight"
Enviado por: oxytech 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://www.arduino.cc/playground/Main/MsTimer2)
http://gonium.net/md/2006/12/20/handling-external-interrupts-with-arduino/ (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
 
Título: Re: medir tempo que 1 pino esta "hight"
Enviado por: p0wd3r 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://www.arduino.cc/playground/Main/MsTimer2)
http://gonium.net/md/2006/12/20/handling-external-interrupts-with-arduino/ (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.
Título: Re: medir tempo que 1 pino esta "hight"
Enviado por: VascoP em 10 de Março de 2010, 18:41
High.



 ;D
Título: Re: medir tempo que 1 pino esta "hight"
Enviado por: oxytech em 10 de Março de 2010, 20:05
High.



 ;D
bem visto  ;D