finalizei mais um projeto, e como todo final de projeto eu sempre reviso o código novamente para tentar otimizar ao máximo minha logica de execução. foi então onde tive a ideia de criar um contador de loop para saber a velocidade de execução em cada parte do meu programa.
é um programa simples e que pode ser acrescentado em qualquer program já pronto,
sei que os 16MHZ estão longe da realidade, mas não imaginava tanto.
testei no meu arduino uno e somente o programa contador de loop rodando deu em torno de 260 KHZ
testei tambem no programa mais complexo que desenvolvi:
a velocidade minima chegou em 37 voltas por segundos em algumas partes
a velocidade maxima chegou a 15.8 KHZ em outras partes desse mesmo programa
eu criei esse programa usando um modulo timmer clock externo , mas já estou trabalhando em uma versão utilizando a função millis
mais informações só comentar em baixo
Tags:
Olá, e cade o code?
Você usou qual linguagem, wiring (Arduino), c padrão ou assembly ?
Boa tarde VD.
o que vou escrever está baseado em um PIC .
Vou falar sobre o PIC, pois conheço muito bem o dataflow do PIC e ainda não estudei a fundo o dataflow do atmega.
Vou me basear num PIC muito popular. o PIC18F628A.
Ele tem um tempo de execução de cada instrução de maquina de 4 pulsos do clock.
Ou seja, se o oscilador for de 4Mhz, cada pulso de clock terá 4.000.000 de pulsos em um segundo.
Significa que cada pulso de clock terá uma duração de 0,25 uS e cada instrução de maquina será executada em 1 uS.
Só que uma instrução de C pode precisar de varias instruções de maquina para ser completada.
Veja se uma instrução de C precisar de 5 instruções para ser executada, o que era 4Mhz, já cai para
4 MHz /4 ciclos /5 instruções = 0,2MHz ou 200KHz.
Ao fazer o programa para calcular o desempenho, as instruções deste programa contaminarão
os resultados.
Sugiro que ao fazer algo que possa medir o desempenho de um processador, utilize a programação ao mais
baixo nível de linguagem, utilizando por exemplo assembly, que afetará ao minimo os resultados.
Rui
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por