Página 1 de 1

Dúvida

MensagemEnviado: 09 Mar 2012 08:13
por bartira2
Olá...pode parecer bobo.....mas como claculo raiz quadrada com uC da Freescale......

Já tentei o sqrt(), o y^x.....e nada funciona....alguem se habilita??...

MensagemEnviado: 09 Mar 2012 08:29
por marcelo_asm
raiz quadrada ? Voce está usando um dos micros Kinetis com FPU implementada em hardware ?

Se não, melhor esquecer a função. Implemente uma tabela e vai por aí, caso contrário não vai rolar.

MensagemEnviado: 09 Mar 2012 08:33
por marcelo_asm
ah sim, ou então algum algoritmo interativo. Aqui é uma boa fonte que sempre uso

http://www.amazon.com/Numerical-Recipes ... 718&sr=1-1

não tenho em mãos agora, mas tem um algoritmo até simples para calcular a raiz quadrada. Tem outras opções também.

MensagemEnviado: 09 Mar 2012 16:26
por hcarcaro
bartira2, vc esta fazendo certo o comando é sqrt() mesmo ou melhor:
var2=16;
var1=sqrt(var2);

porem antes tem que incluir a biblioteca math.c
#include "math.c"

e outra coisa as variaveis devem ser tipo double:
double var1, var2;

tenta isto ai...qq da um toque q tem outro jeito tb.

MensagemEnviado: 14 Mar 2012 22:18
por RobL
Em quase todos os compiladores, você tem que incluir a libraries com essas operações. Por exemplo no GCC tem que incluir a libm.a .
Se estiver usando uma IDE em modo gráfico, vá em configurações -> libraries e selecione lá.

MensagemEnviado: 14 Mar 2012 22:46
por EvandrPic
ops... algoritmo iterativo... :lol:

Recursivo ou iterativo - um algoritmo recursivo possui a característica de invocar a si mesmo repetidamente até que certa condição seja satisfeita e ele é terminado, que é um método comum em programação funcional. Algoritmos iterativos usam estruturas de repetição tais como laços, ou ainda estruturas de dados adicionais tais como pilhas, para resolver problemas. Cada algoritmo recursivo possui um algoritmo iterativo equivalente e vice-versa, mas que pode ter mais ou menos complexidade em sua construção.
http://pt.wikipedia.org/wiki/Algoritmo


ITERATIVO: Diz-se do processo que se repete diversas vezes para se chegar a um resultado e a cada vez gera um resultado parcial que será usado na vez seguinte.
http://pt.wiktionary.org/wiki/iterativo

INTERATIVO: Cuja ação ou reação se exerce mútua ou reciprocamente (entre duas ou mais pessoas ou coisas).
http://www.dicio.com.br/interativo/


Você sabe qual a diferença entre "iterativo" e "interativo"?
Iterativo: que serve para iterar; repetido
Iteração: repetição
Iterar: tornar a fazer; repetir
Interativo: que interage; que permite comunicação em dois sentidos
Interagir: agir mutuamente (uma entidade agindo sobre outra e vice-versa)
http://www.ime.usp.br/~pf/algoritmos/au ... ativo.html

marcelo_asm escreveu:ah sim, ou então algum algoritmo interativo. Aqui é uma boa fonte que sempre uso

http://www.amazon.com/Numerical-Recipes ... 718&sr=1-1

não tenho em mãos agora, mas tem um algoritmo até simples para calcular a raiz quadrada. Tem outras opções também.

MensagemEnviado: 15 Mar 2012 08:21
por RobL
Outro problema que pode estar acontecendo:
Você está testando a função sqrt() igualando a uma variável não estática e que não está sendo usada no fluxo de seu programa.
Durante a optimização, o compilador vai ignorar esta função.
Procure fazer algo com o resultado depois da função sqrt() ou defina uma variável x como volátil para testar.
Por exemplo:
volatil int x ;

x = sqrt(k) ;

MensagemEnviado: 16 Mar 2012 18:12
por tcpipchip

Calculo raiz no MCU

MensagemEnviado: 29 Mar 2012 17:48
por josuemiranda
Da uma olhada no "C reference" da Metrowerks, ele explica como utilizar a biblioteca Math.c, eu tive o mesmo problema uns anos para meu TFG, tive que ajustar o número de casas decimais dos meus floats e tudo mais, pois trabalhei com vários cálculos deste tipo.
O mecanismo de iteração realmente funciona, até mesmo para calculo de senos e cossenos. Mas se você já tem a biblioteca pronta em um MCU que é CISC, não vejo necessidade de implementação. Mas vai do gosto de cada um.

MensagemEnviado: 30 Mar 2012 08:49
por chipselect
não sei se é o seu caso, mas quando eu estava usando o 68HC11, a função sqrt() sempre retornava zero, então fiz uma função iterativo pra achar a raiz.