le 08-24-2015 06:18 AM
Bonjour,
On m'a aidé à réaliser le calcul du CRC16 CCITT de mon programme, cependant lorsque je fourni une trame plus petite, le résultats n'est plus le bon. Pouvez-vous m'aider svp
La trame est 7E041937F65A0036107E, ou 7E est la balise de début et de fin, et 3610 le checksum normalement trouvé.
Le problème est également que la trame est sous format little endian.
Je met la partie de calcul également en piece jointe.
Merci d'avance,
Cordialement
Rémi D.
le 08-24-2015 10:03 AM
Bonjour,
Attention dans ta deuxième étape, il peut y avoir un conflit de mise à jour du champ "chaîne 3", car il n 'y a pas de lien physique entre ta boucle "for" et ton "case".
Séparer ces deux boucles dans deux fenêtres de condition, afin de prioriser une étape par rapport à l'autre.
Cdt,
Michael
08-24-2015 12:35 PM - modifié 08-24-2015 12:41 PM
DODO13 ...
Pourquoi utilises-tu des variables locales alors que tu peux cabler directement ?
et d'accord à 200% avec Michael.C ...
Dans la 2eme étape, concernant "chaîne 3" ... c'est un peu l'horreur (au niveau flux de données)
et j'ajouterai même que l'ensemble de ton code pourrait très bien être implémenté sans aucune structure séquence (et sans aucune variable locale).
Le flux de données .... dans ton code ce flux de données est complètement zappé ... et pourtant, c'est la base essentielle de LabVIEW.
le 08-25-2015 01:06 AM
le 08-25-2015 02:19 AM
Bonjour,
J'ai rapidement fait l'effort ce matin de supprimer toutes les variables locales pour remettre en place un flux de données un peu plus "propre".
Sauf erreur de ma part (j'ai fait ça en 2 min), il semblerait que ta dernière boucle "FOR" a un souci. Comme elle est câblé actuellement, elle ne sert strictement à rien puisque tu fais un case sur le champ "Chaîne" qui n'évolue jamais à ce stade là, donc aucun intérêt de mettre 4 itérations.
Tu trouveras le vi modifié en pièce jointe, en espérant que cela t'aide à avancer.
Cdt,
Michael
le 08-25-2015 02:24 AM
08-25-2015 03:20 AM - modifié 08-25-2015 03:21 AM
ça devient "plus propre", maintenant il existe un "flux de donnée" cohérent (merci Michael)
Je remarque que le VI est "broken" .... le dernier shift-registre (à droite) n'est pas cablé.
Et la structure séquence, à quoi sert-elle maintenant ? ... à rien ... on peut la supprimer.
Cette structure séquence force .... ce qui est déjà parfaitement défini par le flux de données.
le 08-25-2015 04:06 AM
ouadji a écrit :
Je remarque que le VI est "broken" .... le dernier shift-registre (à droite) n'est pas cablé.
.
En effet, je n'ai pas pris le temps de comprendre toutes les étapes de son programme. Ne comprenant pas l'intérêt de sa récursivité sur le champ "Chaîne" dans la dernière étape, j'avais conservé le registre à décalage pour garder le côté "ré-utilisation" à l'itération suivante.
Après, je tiens à préciser que je n'ai pas encore analyser l'aspect fonctionnalité du VI, j'ai uniquement fait une première passe d'ergonomie.
Bonne journée à tous.
le 08-25-2015 08:49 AM
Bonjour,
J'ai encore un peu clarifier le diagramme.
Pourrais tu me donner un cas qui marche avec ton VI, et commenter le diagramme modifié.
Car je ne pourrais pas t'apporter plus d'aide sans commentaire sur ton diagramme pour comprendre tes différentes étapes.
Cdt,
Michael
le 08-25-2015 09:04 AM