Hallo,
ich habe versucht, das per Hand mal durchzurechnen, aber da kommt bei mir nur Müll raus... leider... aber egal, ich habe das Problem -nach längerem Nachvollziehen der Hardware-Lösung- jetzt so gelöst:
Prinzip siehe
hier.
Code:
unsigned char i, j, input, bit, crc, polynom, sernum[7];
crc=0;
polynom=0x131;
sernum[0]=0x22;
sernum[1]=0xE3;
sernum[2]=0xF8;
sernum[3]=0x1F;
sernum[4]=0x00;
sernum[5]=0x00;
sernum[6]=0x00;
for(i=0;i<7;i++){
for(j=0;j<8;j++){
input = (sernum[i]>>j) & (0x01);
bit = (crc & 0x01)^input;
crc ^= (bit<<4) | (bit<<3);
crc >>= 1;
crc |= bit<<7;
}
}
printf("Die CRC-Pruefsumme lautet: %x", crc);
Da kommt dann auch anständig
DF (nicht "Das Delphi-Forum") raus
Yippiiiie!
Oh, danke für den Beitrag eben, gammatester! Dann kann ich jetzt also auch mit den entsprechenden Units das ganze mit Delphi machen (habe es momentan in C für nen USB-Chip geschrieben)
Viele Grüße,
Elko