Arduino HAUT BAS
J'ai un Arduino et je me demande exactement ce que la HAUTE et BASSE moyenne comme mesure des valeurs réelles de l'aller... Sont-ils signé ints? Unsigned ints? Unsigned caractères??? Quelles sont leurs valeurs? Je devine que la HAUTE et BASSE sont probablement unsigned ints avec tous les bits mis à 1 et 0 respectivement, mais je ne suis pas sûr. Je voudrais être capable de faire des opérations bit à bit à l'aide de HAUTE et de BASSE ou de transmettre des valeurs autres que le HAUT ou le BAS pour digitalWrite. Aussi, comment pourrais-je jeter un entier en HAUTE ou BASSE, afin que je puisse faire cela?
OriginalL'auteur Void Star | 2012-09-14
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez transmettre d'autres valeurs à digitalWrite (), vous pouvez jeter un oeil à la fonction prototype
De sorte que toute valeur entière (bien, de 0 à 255) serait de travailler. Aucune idée de ce que le comportement de digitalWrite() pourrait être si vous avez passé une valeur autre que le HAUT et le BAS.
Depuis la HAUTE et la BASSE sont simplement définies constantes, vous ne pouvez pas jeter un entier (ce ne serait que l'opération de sens). Il semble que vous pourriez utiliser un nombre entier de n'importe où que HAUTE et BASSE a été prévu.
En train de faire c'est une mauvaise idée, bien que, pour beaucoup de raisons - les définitions de HAUTE et de BASSE pourrait changer (peu probable mais possible) et ça n'a pas de sens à partir d'un type de point de vue. Au lieu de cela, vous devez utiliser la logique de votre programme afin de déterminer si HAUTE ou BASSE doit être transmis à l'appel de la fonction, puis passer à la constante.
Faute de frappe, désolé.
La réponse ci-dessus aux états de définir des constantes.
OriginalL'auteur Ivan
Ont un coup d'oeil à
hardware/arduino/cores/arduino/Arduino.h
(au moins dans Arduino 1.0.1 logiciel), lignes 18 et 19:Sens, ces définit entier hexadécimal valeurs, vous pouvez faire ce que les opérations bit à bit que vous voulez avec eux - faire beaucoup plus de sens que cela va faire, cependant, n'est pas vraiment clair pour moi en ce moment. Aussi garder à l'esprit que ces valeurs peuvent être sujettes à modification à une date ultérieure qui en ferait des opérations bit à bit sur eux encore plus imprudent.
OriginalL'auteur codeling
À ajouter à ma 2c codeling réponse. Lignes 18--25 de
Arduino.h
(1.0) sont:Par conséquent,
HIGH<==>OUTPUT<==>true<==>0x1
etLOW<==>INPUT<==>false<==>0x0
.Ensuite,
HIGH<==>!LOW
etLOW<==>!HIGH
...OriginalL'auteur Alvaro
Le premier argument de digitalWrite() est un numéro de pin.
Le deuxième argument de digitalWrite (), soit:
1) écrire un HAUT (3,3 ou 5 v) ou BAS (0v) à une SORTIE BINAIRE ou
2) activer (HAUT) ou de désactiver (FAIBLE) à l'intérieur de pullup sur une ENTRÉE BINAIRE.
Des opérations bit à bit pour argument n'ont pas de sens. Peut-être vous avez besoin d'utiliser analogWite()?
Voir la documentation: digitalWrite() Constantes
OriginalL'auteur Derek Johnson