Arduino : int tension = 0; ou int tension; ? [Résolu]

Signaler
-
 sXchX -
Bonjour à tous,
je pratique en ce moment la programmation sur une carte Arduino. Lorsque je défini une variable "tension" par exemple, quelle est la différence entre " int tension = 0; " et " int tension; " ?

3 réponses

Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866
bonjour,
je suppose que tu programmes en C.
int tension;
déclare une variable dont la valeur initiale est indéterminée.
int tension = 0;
déclare une variable dont la valeur initiale est 0.
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 > sXchX
plus tu donnes d'information, mieux nous pouvons t'aider.
>
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021

Bonjour, désolé du temps de réponse. Je pense avoir résolu mon problème. Simpement j'ai besoin d'une autre information. J'utilise une Arduino DUE, mais je ne sais pas comment indiquer que j'utilise la sortie analogique DAC0. Malgré le fait que j'utilise la fonction
analogWrite()
, ma LED ne fonctionne pas quand je la branche sur la sortie analogique DAC0. Avez vous une idée ?
Voici une partie de ce que j'ai écris :
int pin = 0 ; 
analogWrite(pin, calcul) ; 

La valeur "calcul" est évidemment définie dan mon programme.
> sXchX
Merci beaucoup je viens de résoudre mon problème. Merci du temps que vous m'avez consacré !!
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 > sXchX
peux-tu alors marquer la discussion comme résolue?
>
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021

Oui excusez moi je fais ça !
Messages postés
4668
Date d'inscription
lundi 17 février 2020
Statut
Membre
Dernière intervention
9 juin 2021
291
Salut, int tension = 0 tu attribue la valeur 0 à la variable tension et pour la deuxième int tension; je ne vois pas trop l'intérêt

Messages postés
7725
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
9 juin 2021
1 824
Bonjour,

int tension-0 est une déclaration et initialisation de variable (à la valeur 0 ou autre)

int tension n'est que la déclaration de type. La valeur est indéterminée pour ne pas dire aléatoire puisqu'elle peut prendre le contenu de l'adresse où elle est stockée par le programme.

Si vous ajoutez une ligne tension=0, cela revient à créer en deux temps ce que vous auriez pu faire en une instruction.

Ceci dit, si vous définissez la variable et en changez la valeur dans un bloc ou une fonction, c'est la nouvelle valeur, par exemple tension=5, qui est prise en compte, et perdue dès que vous sortez du bloc ou de la fonction.

C'est ce qu'on appelle la portée de la variable.

Dans ce cas, tension revient à la valeur initiale (0 ou autre)

Si vous voulez utiliser le résultat de a fonction, il faut faire un return tension et l'affecter à une autre variable.

Attendre les compléments ou infirmations d'autres intervenants plus qualifiés.
Messages postés
7725
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
9 juin 2021
1 824
Bonjour yg_be,

Désolé, j'ai mis trop longtemps à rédiger et n'ai pas vu ta réponse avant de valider;

Je te laisse la main.
>
Messages postés
7725
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
9 juin 2021

Merci quand même pour votre réponse !