[WD5.5b][WD8] Comment Calculer le CRC8 d'un byte ?
1 réponse
Fred
Bonjour !
Je communique avec un ecran LCD monochrome liaison RS232 sur port COM1. Pour
charger des images, il faut envoyer des trames avec un caractère de contrôle
en bout de trame qui est la somme des CRC8 de chaque byte. Est-ce que
quelqu'un aurait déjà réalisé une procédure qui calcule ce CRC8 sur un byte
?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Romain PETIT
Fred a pensé très fort :
Bonjour !
Bonsoir,
Je communique avec un ecran LCD monochrome liaison RS232 sur port COM1. Pour charger des images, il faut envoyer des trames avec un caractère de contrôle en bout de trame qui est la somme des CRC8 de chaque byte. Est-ce que quelqu'un aurait déjà réalisé une procédure qui calcule ce CRC8 sur un byte ?
Il y a plusieurs algorithmes pour les CRC (le CRC8 est peu utilisé) et j'avoue n'avoir jamais eu le courage d'essayer de les coder en W-langage... De toutes façons, ce serait une bourde de le faire car le calcul du CRC prendrait énormément plus de temps à WD qu'un appel à une DLL ou un OCX optimisé.
Je te conseille cet OCX : CRCOCX, http://welcome.to/sirocco , il permet de calculer *très* rapidement (routines en assembleur) des CRC32, 16, 8, XOR, CCITT, sommes 16/32 (LRC) et même des CRC personnalisés... Gratuit pour un usage perso, il coute 50 (euros ? livres ?) pour avoir les sources (cf le fichier d'aide)
Très facile à mettre en oeuvre : - fichier OCX à enregistrer sur le système - controle ActiveX WD en sélectionnant "CrcCtrl Control" (axCRC dans mon exemple) - exemple de code WD :
sChaine est une chaine = "01A2BB"
axCRC>>CRCType = 10 //type CRC8 axCRC>>DoCRC(sChaine, Taille(sChaine), Faux, 0) Info("le CRC8 de la chaine " + sChaine + " est " + axCRC>>GetCRCHexStr)
A+
-- Romain PETIT http://cerbermail.com/?IJmancZl88 (cliquez sur le lien ci-dessus pour me contacter en privé)
Fred a pensé très fort :
Bonjour !
Bonsoir,
Je communique avec un ecran LCD monochrome liaison RS232 sur port COM1. Pour
charger des images, il faut envoyer des trames avec un caractère de contrôle
en bout de trame qui est la somme des CRC8 de chaque byte. Est-ce que
quelqu'un aurait déjà réalisé une procédure qui calcule ce CRC8 sur un byte
?
Il y a plusieurs algorithmes pour les CRC (le CRC8 est peu utilisé) et
j'avoue n'avoir jamais eu le courage d'essayer de les coder en
W-langage...
De toutes façons, ce serait une bourde de le faire car le calcul du CRC
prendrait énormément plus de temps à WD qu'un appel à une DLL ou un OCX
optimisé.
Je te conseille cet OCX : CRCOCX, http://welcome.to/sirocco , il permet
de calculer *très* rapidement (routines en assembleur) des CRC32, 16,
8, XOR, CCITT, sommes 16/32 (LRC) et même des CRC personnalisés...
Gratuit pour un usage perso, il coute 50 (euros ? livres ?) pour avoir
les sources (cf le fichier d'aide)
Très facile à mettre en oeuvre :
- fichier OCX à enregistrer sur le système
- controle ActiveX WD en sélectionnant "CrcCtrl Control" (axCRC dans
mon exemple)
- exemple de code WD :
sChaine est une chaine = "01A2BB"
axCRC>>CRCType = 10 //type CRC8
axCRC>>DoCRC(sChaine, Taille(sChaine), Faux, 0)
Info("le CRC8 de la chaine " + sChaine + " est " + axCRC>>GetCRCHexStr)
A+
--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Je communique avec un ecran LCD monochrome liaison RS232 sur port COM1. Pour charger des images, il faut envoyer des trames avec un caractère de contrôle en bout de trame qui est la somme des CRC8 de chaque byte. Est-ce que quelqu'un aurait déjà réalisé une procédure qui calcule ce CRC8 sur un byte ?
Il y a plusieurs algorithmes pour les CRC (le CRC8 est peu utilisé) et j'avoue n'avoir jamais eu le courage d'essayer de les coder en W-langage... De toutes façons, ce serait une bourde de le faire car le calcul du CRC prendrait énormément plus de temps à WD qu'un appel à une DLL ou un OCX optimisé.
Je te conseille cet OCX : CRCOCX, http://welcome.to/sirocco , il permet de calculer *très* rapidement (routines en assembleur) des CRC32, 16, 8, XOR, CCITT, sommes 16/32 (LRC) et même des CRC personnalisés... Gratuit pour un usage perso, il coute 50 (euros ? livres ?) pour avoir les sources (cf le fichier d'aide)
Très facile à mettre en oeuvre : - fichier OCX à enregistrer sur le système - controle ActiveX WD en sélectionnant "CrcCtrl Control" (axCRC dans mon exemple) - exemple de code WD :
sChaine est une chaine = "01A2BB"
axCRC>>CRCType = 10 //type CRC8 axCRC>>DoCRC(sChaine, Taille(sChaine), Faux, 0) Info("le CRC8 de la chaine " + sChaine + " est " + axCRC>>GetCRCHexStr)
A+
-- Romain PETIT http://cerbermail.com/?IJmancZl88 (cliquez sur le lien ci-dessus pour me contacter en privé)