Calcul du bit de parité (pair ou impair)

senga34
Messages postés
14
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
22 septembre 2004
- 7 sept. 2004 à 17:53
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
- 22 sept. 2004 à 19:49
Bonjour !
Etant débutant dans VB, qui peut m'indiquer
comment faire pour générer le bit de parité pair ou impair , sachant que je sais convertir un nombre décimal en binaire

Je ne trouve pas les fonctions de décalages comme en "asm pic"
J'ai vu la fonction Xor qui est presente

Sur le site microsoft msdn , on trouve la fonction <<= ou >>=
mais ne fonctionne pas chez moi ( erreur de compilation ???)
Si on pouvait me faire un résumé la dessus !

Merci
@+

43 réponses

Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
21 sept. 2004 à 18:13
Bonjour Sanga, je suis là.

comme j'avais pas compris ta routine avec le for:
For i = (Second(Time)) To Len(trame)

avec Second(Time) qui est un temps en secondes, et len(Trame) qui est une longueur, alors j'ai fait une routine à moi en utilisant getTickCount, ce que je pense c'est que que tu testes le temps et lorsqu'on passe à une nouvelle seconde, tu envoies un bit.

il faudrait 2 boucles For, une de 1 à Len(trame), et l'autre pour attendre la seconde. et après envoyer le bit.

essayes d'inclure des DoEvents, ça petmet au système de mettre à jour ses données

Daniel
0
senga34
Messages postés
14
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
22 septembre 2004

22 sept. 2004 à 18:12
Bonsoir Mr Gobillot!
Là je dois dire que j'avance!....
J'ai fait quelques tests afin de vérifier certaine chose

j'ai écrit un prgm qui ne mets en oeuvre qu'1 timer
Private Sub Timer1_Timer()
Label1.Caption = Date$ & " " & Time$
End Sub

J'ai refais le même genre de test , cette fois avec une API "GetSystemTime"
résultat identique
L'affichage des secondes déraillent

Pas possible , le résultat était identique , j'y croyais pas !ya forcément un truc!
Je me suis rendu compte qu'il suffit tout simplement de mettre la valeur de
Timer1.Interval à 5 par exemple au lieu des 1000 que j'avais mis
( rafraichissement nettement plus rapide )cqfd

Suite à cela , j'avais encore un probléme non plus des secondes qui sautent mais un probléme sur la derniére routine "Private Sub Calcul_temps_bit()"
il suffit tout simplement maintenant de supprimer les lignes

' While GetTickCount < tp ' tant que inférieur à tp
' DoEvents
' Wend ' on sort si getickcount > à tp

Là c'est impeccable .

Me reste maintenant la gestion rs232!....pas évident à premiere vue.Je m'y attache !...
Ya des trucs que j'ai pas compris , pour l'envoie sur le port
comment vais-je savoir si j'envoie bien un 1 pendant 100ms
par exemple
Comment se traduit un état haut lors d'un envoie sur le port
par exemple?
Si je regarde dans ma procédure Private Sub Calcul_temps_bit()
je distingue un 0 ou un 1 en affichant le temps respectif mais apres..... encore des questions !

Bonne soirée
@+
0
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
22 sept. 2004 à 19:49
Pour vérifier tu branche un oscillo sur ton port série, en envoyant un "0" suivi d'un "1" et en bouclant, tu pourras avoir la synchro ...
et là il y aura des surprises !

on met le bit à 0 ou à 1
la sortie du port série correspondant passe à l'état haut
on boucle pendant un temps déterminé (100ms ou 200ms)
While GetTickCount < tp '
DoEvents
Wend
on repasse la sortie à l'état bas

la boucle à mon avis est indispensable.
0