Detection front montant/descendant sur un octet

Contenu du snippet

Les sources sont (à mon sens ) commentée . Est facilement extensible aux 16 / 32 bits . Pour mon cas précis je n'avais besoin que d'octets.

Source / Exemple :


'*******************************************************************************************
' permet de surveiller les changement d'états sur un octet
'Entree : Mot à tester et son etat antérieur
'sortie : un tableau à deux dimensions de 8 lignes  (0 à 7 ) ou la premiere colonne signale si le bit a changé d'état
'et la deuxieme le sens (1 Front montant 0-> Front descendant )

'*******************************************************************************************
Private Function Front(ByVal Octet1 As Integer, ByVal Octet2 As Integer) As Integer()
    
    Dim Byte1_XOR_Byte2 As Integer
    Dim TabResultat(7, 1) As Integer
    Dim Ligne, Colonne As Integer
    
    'RAZ du tableau resultat
    For Ligne = 0 To 7
        TabResultat(Ligne, 0) = 0
        TabResultat(Ligne, 1) = 0
    Next
    
    'on recupére dans mot3 tous les bits ayant un état different (interpretaton binaire )
 
    Byte1_XOR_Byte2 = Octet1 Xor Octet2
    
    For Ligne = 0 To 7
     'On teste si le bit est passé a 0 a 1 (pour la position )
         If (Byte1_XOR_Byte2 And (2 ^ Ligne)) Then
            
            TabResultat(Ligne, 0) = 1
            ' pour savoir si FE ou RE )
            If (Octet1 And (2 ^ Ligne)) Then
                    TabResultat(Ligne, 1) = 1
            Else
                TabResultat(Ligne, 1) = 0
            End If
        End If
      
    Next
    
  Front = TabResultat
End Function

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.