Bonjour,
J'utilise ce code pour générer un CRC8 d'une trame avant de l'envoyer via RS232 à mon PC. Mon application PC dois générer ce même crc pour la valider ou non et là ... mes connaissances en VB semblent montrer leur limite :
voici mon debut de traduction en VB qui doit se rapprocher de la solution mais j'ai du mal avec les decallage d'octets les Xor ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 char GetChkSum(char *d,char len) { static char i,t; t=0; // occhio all'inizializzazione, se t diventa static!!! do { ClrWdt(); t ^= *d++; for(i=0; i<8; i++) { if(t & 0x80) t = (t << 1) ^ 0x85;else t <<= 1; } }while(--len); return t; }
Merci d'avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Private Function CRC8(ByVal d() As Byte, ByVal longueur As Integer) As Byte Dim i As Integer Dim j As Integer Dim t As Byte t = 0 For j = 0 To longueur - 1 t = t xor d[j] For i = 0 To 7 if (t & 0x80) t = (t << 1) Xor 0x85 Else t <<= 1 Next Next return t; End Function
Partager