Ir ao conteúdo
  • Cadastre-se
arthuki

Periodo de uma onda

Recommended Posts

Olá a todos,

 

Estou usando uma Beaglebone ligada a um temporizador LM555 que gera uma onda de período específico. Preciso calcular o período dessa onda através da variação de HIGH e LOW na porta digital da beaglebone.

Quando a entrada vai de LOW para HIGH e de novo para LOW, tem-se uma onda completa.

 

Estou usando o Qtcreator portanto programando em C++. gostaria de usar interrupções como no arduino, mas achei bastante confuso o uso de interrupções na beaglebone.

 

Alguém teria uma ideia de como medir esse tempo?

 

Obrigado

 


 

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <stdio.h>
#include <time.h>

int main(int argc, char *argv[])
{
  clock_t t_ini, t_fin;
  double secs;

  t_ini = clock();  //Iniciamos o cronometro tomamos o tempo inicial
  
  
  printf("Aperte uma tecla");
  getchar();
  
  t_fin = clock();  //Tomamos o tempo final

  secs = (double)(t_fin - t_ini) / CLOCKS_PER_SEC;  //Tempo final - tempo inicial dividido por segundos obtemos os sengundos
  
  printf("passado: %.16g milisegundos\n", secs * 1000.0); // multiplicando por 1000 obtemos o tempo em milissegundos
  return 0;
}

Se usar o google e por algo como "medir tempo em C/C++" sairá algo como isso.

Explicando assim por em cima primeiro você deveria saber o que é o Era Unix, que simplificando é uma data especifica no tempo na qual se medi em segundos que passaram desde essa data. Por exemplo medimos quantos segundos passaram desde uma hora atrás e suponhamos que passou 300 segundos, esperamos 20 segundos e fazemos uma nova medição do tempo, dessa vez obtemos 300 + 20 segundos que passaram, então restamos a primeira leitura(300) da ultima(320), isso dará exatamente 20 segundos(320-300=20) que é o tempo que passou entre a primeira medição e a ultima, pois é exatamente o que faz a função clock, porém faz isso desde o Era Unix, não sei se ficou claro. Todas as funções de tempo no C/C++ tem muito que ver com o era unix, entenda isso e você poderá medir o tempo perfeitamente, calcular datas, etc.

Certamente exista outras formas de faze-lo porém essa é a única que conheço. Pode que exista bibliotecas ja prontas para isso, e o correto seria medir o tempo em milissegundos ou inclusive microsegundos para uma medição mais precisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Vangodp. Muito obrigado pela resposta.

 

É isso mesmo que estou procurando. Entretanto no seu exemplo você usou o INPUT como se fosse o apertar de uma tecla.

No meu projeto, estou usando um timer LM555 para gerar uma onda e preciso saber o período desta onda. Para isso conectei a saída do timer 555 ao pino digital da Beaglebone e quero medir o tempo que leva para ir de LOW para HIGH e depois de HIGH para LOW, configurando uma onda completa. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que nada meu amigo. Estou aprendendo. Por isso estou tomando uma coça neste projeto. Preciso disso para um projeto da universidade. Se alguém mais puer ajudar será muito bom.

 

Obrigado

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para quem precisar, encontrei uma solução:

 

No Arduino tem uma função chamada PulseIn que faz essa contagem de tempo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
16 minutos atrás, arthuki disse:

Para quem precisar, encontrei uma solução:

 

No Arduino tem uma função chamada PulseIn que faz essa contagem de tempo.

Claro... lembre que um forum sempre serve a modo de consulta, procure sempre postar as soluções ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×