Go Down

Topic: Problème de calcul (Read 616 times) previous topic - next topic

thibaud

Bonjour,

J'ai branché un potentiometre de 10k sur l'entrée analogique 2 et j'ai un souci avec le code suivant :

Code: [Select]
void loop(){
 int iRead = 0;
 Serial.print("potentiometer getValue ");
 iRead = analogRead(2);
 Serial.print(iRead,DEC);
 Serial.print(" ");
 long inter = iRead * 270;
 long inter2 = 1023 -iRead;
 float inter3 = inter / inter2;
 Serial.print(inter,DEC);
 Serial.print(" ");
 Serial.print(inter2,DEC);
 Serial.print(" ");
 Serial.println(inter3, DEC);
 Serial.println();
 delay(1000);
}


Le problème est que la la variable inter me retourne une valeur négative alors que iRead = 663

Merci d'avance de vos réponses

Comment celà ce fait il? comment 663 * 270 peut donner un négatif?

Oliv4945

Bonjour,
il faut faire un "cast" sur ta valeur avant l'affectation :
Code: [Select]

long inter = (long) iRead * 270;


thibaud

Ok donc pas de conversion implicite durant le calcul d'où le petit souci :)
Merci !

fdufnews

En fait ton écriture demande le produit de 2 entiers et la conversion du résultat en long. Pour que la multiplication se fasse sur des long, il faut qu'un des opérateurs soit lui même un long

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy