Comparaison de chiffre binaire et agir en fonction
cs_Jacky7
Messages postés63Date d'inscriptionmardi 13 mai 2008StatutMembreDernière intervention22 juin 2011
-
5 juin 2008 à 19:33
cs_Jacky7
Messages postés63Date d'inscriptionmardi 13 mai 2008StatutMembreDernière intervention22 juin 2011
-
13 juin 2008 à 10:50
Bonsoir à tous,
J'ai realisé un prog qui permet de lire et de convertir la valeur du port de décimale en binaire (bit de donnés de DO à D7) toutes les 500ms.
J'effectue une première lecture et j'enregistre sa valeur (en binaire) puis 500ms plus tard je relis la valeur du port que j'enregistre également puis je fais une comparaison entre ces deux valeurs et ainsi de suite.
Mon problème est que je voudrais comparer ces deux valeurs binaires, de façon à "détecter" le ou les bits qui aurait changés pendant les 500ms et agir en fonction mais je ne sais pas comment m'y prendre ??
Par exemple :
11111110 #(different de) 11111111
alors le bit D0 a été modifié
Est-ce possible "d'adresser" chaque bit ci-dessus dans une variable comme par exemple le bit DO a, le bit D1 b....puis d'effectuer ensuite une comparaison de ces variables afin de retrouver quel bit a bougé ?
J'espère que ce que je raconte est compréhensible
Merci.
A voir également:
Comparaison de chiffre binaire et agir en fonction
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 5 juin 2008 à 19:51
Salut,
Regarde ce petit exemple ^^ :
Private Sub Command1_Click()
Dim sSource As String
Dim sCompare As String
Dim iboucle As Integer
sSource = "11111111"
sCompare = "11111110"
For iboucle = 1 To Len(Text1.Text)
' test compare
If Mid$(sSource, iboucle, 1) <> Mid$(sCompare, iboucle, 1) Then
MsgBox "Changement de valeur à la position : " & iboucle
Exit For
End If
cs_Loic34000
Messages postés27Date d'inscriptionmardi 11 mars 2008StatutMembreDernière intervention 6 juin 2008 6 juin 2008 à 10:37
Salut Exploreur,
L'exemple que tu m'a fournit est vraiment ce que je voulais et je t'en remercie fortement,mais un autre problème se pose j'aimerais savoir s'il serait possible de "detecter" seulement un passage de 0 à 1 et de laisser de côté le passage de 1 à 0 ou inversement ?
Par exemple :
00000000 -> 00000001 Msgbox "le bit DO à été modifié" mais lorsque
00000001 -> 00000000 rien ne se passe ou inversement
Le but serait en fait de detecter seulement les fronts montant ou descendant du changement de bit.
Est ce que tu aurais une idée sur la façon dont je peut m'y prendre ?
Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jacky7
Messages postés63Date d'inscriptionmardi 13 mai 2008StatutMembreDernière intervention22 juin 20113 13 juin 2008 à 10:38
Salut Exploreur,
Je voulais savoir s'il serait possible de "détecter" la valeur du bit lors du changement de valeur à la position x. (par exemple le bit est à la valeur 0 ou 1) et agir en fonction.
Car mon problème est que je modifie cette valeur à l'aide d'un bouton poussoir, lorsque que j'appuie sur le bouton il y a 1 changement de bit (par ex bit n°1 passe de 1 à 0 et reste a zéro tant que je reste appuyé) et lorsque je relache il y a un deuxième changement (le passage du même bit de 0 à 1 qui revient à son état initial), mais je voudrais que mon prog ne voit qu'un seul changement et non deux mais je ne sais pas comment m'y prendre.