Ir ao conteúdo
  • Cadastre-se

Fácil, fácil.. fazer com que uma soma (a+b)...


Posts recomendados

17 minutos atrás, Ofioneu disse:

Será que assim funciona?

 

Funcionar, funciona!

 

mas no caso do seu exemplo, vai atualizar somente uma vez e depois sai da função, se você quiser que fique atualizando a vida toda, tem que usar um laço (do while ou while se for em C, pode usar também um laço for(;;) ), agora, se você quer que a atualização se repita um certo número de vezes, pode ser com o laço for(int32 j=0;j<320000;j++), nesse caso, vai atualizar 320.000 vezes e sai da rotina, tem ainda a opção while(variavel=alguma coisa) e por aí vai...

 

adicionado 5 minutos depois

Pra quê que você precisaria atualizar uma soma dentro de uma função sendo que os valores da soma, do jeito que você citou, não serão alterados? Se não serão alterados, porquê atualizar? Meio sem sentido, não acha?

Link para o comentário
Compartilhar em outros sites

@Ofioneu ,

 

Vai depender MUITO do tipo de variável que está sendo somado.

 

No seu exemplo, um tempo de 1 microssegundo complica demais porque o microcontrolador terá apenas 16 ciclos de clock para fazer isso, o que é inviável no ambiente de linguagem de alto nível.

Só a preparação do compilador para chamar essa função já consome mais tempo do que isso !

 

Sugiro fazer isso em Assembler mesmo, e colocar direto no local, substituindo a chamada da função. Vai ganhar um tempo muito, muito precioso se os seus tempos forem mesmo na ordem de microssegundos.

 

Mesmo assim, vai depender do tipo de variável que vai ser somada. Se for inteiro ou tipo word, sem problema. Se for acima disso, considere tempo minimo bem maior do que poucos microssegundos....seriam da ordem de dezenas de microssegundos ou até centenas se forem em ponto flutuante de dupla precisão.

 

Paulo

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
unsigned int soma(unsigned int a, unsigned int b)
{
return a+b;
}

isso tem em praticamente todos os exemplos de intrudução no c (!)

Um bom compilador traduz pro asm do mc como se fosse feito a mão em asm mesmo

Não entendi a do delay. De fato não entendi nada. Só sei que nada sei.

Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz ,

 

Pelo que eu entendi, ele quer atualizar a soma a cada microssegundo.... o que até pode ser feito se usar um Arduíno e se as variáveis forem do tipo inteiro, mas sem chamar uma sub-rotina ou função. Fora disso, em 1 microssegundo, esquece !!!!

 

Só para salvar e repor registradores, o compilador perderá mais de 1 microssegundo.....

 

Paulo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...