Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Calcul de puissance en C ( pour Arduino )



  1. #1
    Debutant72

    Calcul de puissance en C ( pour Arduino )


    ------

    Bonjour à toutes et à tous,

    Je débute dans la programmation d'une carte Arduino.
    Le langage serait une forme de C ( n'ayant aucune expérience dans ce domaine, je n'affirme donc rien à ce sujet ).

    Depuis hier, je cherche à calculer le résultat de 2 élevé à une puissance pouvant aller de 7 à 0 selon les cas.
    Ce qui donne :

    Déclaration initiale :
    int Valeur=0;

    Dans la boucle :
    for (int i=7; i>-1; i--)
    {
    Valeur = pow(2,i);
    }
    Le résultat n'est pas bon puisque j'ai à chaque fois une valeur inférieure de 1 par rapport au bon résultat.
    J'ai éssayé aussi de déclarer Valeur en type byte sans résultat.
    J'ai aussi éssayé de ruser en écrivant Valeur = pow(2,i)+ 1, mais là, ça ne marche que dans 7 cas sur 8 ( dans un cas, le résultat est au dessus de +1 ).

    J'ai cherché sur le net mais j'ai rien trouvé qui fonctionne.
    Ils causent bien de variable double, float, ... que j'ai éssayé mais sans résultat.

    Quelqu'un a t-il une idée sur ce problème ?

    Merci d'avance pour votre aide.

    -----

  2. Publicité
  3. #2
    whoami

    Re : Calcul de puissance en C ( pour Arduino )

    Bonjour,

    Le code m'a l'air correct. Et test chez moi avec
    Code:
        for (int i=7; i>-1; i--)
        {
            int Valeur;
            Valeur = pow(2,i);
            printf("i = %d, %d\n",i,Valeur);
        }
    j'obtiens bien
    Code:
    i = 7, 128
    i = 6, 64
    i = 5, 32
    i = 4, 16
    i = 3, 8
    i = 2, 4
    i = 1, 2
    i = 0, 1
    ce qui est le résultat attendu.

  4. #3
    Debutant72

    Re : Calcul de puissance en C ( pour Arduino )

    Bonjour whoami,

    Merci d'avoir consacré un peu de temps à mon problème.
    Sur l'Arduino, ça marche pas pour des histoires d'arrondis et de type de variable.
    De ce fait, je range la fonction "pow() avec des entiers" au placard.

    On m'a conseillé d'utiliser l'instruction readbit(variable,position du bit) pour mon besoin.
    Ca marche super et ça simplifie grandement l'écriture.

    Mon problème est donc règlé.

    Merci encore pour ton aide.

  5. #4
    polo974

    Re : Calcul de puissance en C ( pour Arduino )

    Pour les puissances entières de 2:
    Code:
    Valeur = 1<<i;
    ça évite de passer par les float (ou double), c'est rapide, efficace ...

    et juste ...

    enfin, tant qu'on ne déborde pas !
    Jusqu'ici tout va bien...

  6. A voir en vidéo sur Futura

Discussions similaires

  1. calcul de puissance et de tension pour un alternateur
    Par bigoude13 dans le forum Physique
    Réponses: 4
    Dernier message: 29/05/2010, 07h33
  2. Calcul de dissipation de puissance pour une résistance
    Par Mazaveli dans le forum Électronique
    Réponses: 1
    Dernier message: 21/08/2009, 05h50
  3. Calcul de puissance pour dimenssionement d'un moteur
    Par ptitepuce3401 dans le forum Technologies
    Réponses: 8
    Dernier message: 10/05/2009, 19h41
  4. [Divers] Calcul de puissance pour choix GE
    Par kurlys dans le forum Dépannage
    Réponses: 2
    Dernier message: 05/02/2009, 18h12
  5. besoin d'aide pour calcul de puissance chaudière fuel
    Par julskii dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 1
    Dernier message: 04/10/2008, 05h56
Découvrez nos comparatifs produits sur l'informatique et les technologies.