Hallo! Bin vorhin auf ein sehr merkwürdiges Verhalten gestoßen. In meiner CRC16-Funktion wollte ich uIndex = uchCRCHi ^ *puchMsg++; in eine andere Funktion auslagern: unsigned calcIndex(unsigned char uchCRCHi, unsigned char Val) { return (uchCRCHi ^ Val); } Danach erfolgt dann der Aufruf über: uIndex = calcIndex(uchCRCHi, *puchMsg++); Jetzt hab ich folgendes Problem: 6mal kann ich den CRC-Wert richtig berechnen, beim 7. mal auch, aber dabei werden dann scheinbar andere Speicherbereiche überschrieben. Zumindest sind meine Datenpakete dann mit falschen Zeichen befüllt, die Checksumme hintendran stimmt immernoch. Bei diesen Zeichen taucht dann unter anderem auch die Checksumme wieder auf, aber in umgekehrter Reihenfolge, erst LowByte, dann HighByte. Die anderen Zeichen kehren auch immer wieder, aber sie wandern im Datenpaket aufwärts. Ich finde das sehr seltsam. Eigentlich wollte ich größere Teile von der CRC-Berechnung auslagern, dabei entdeckte ich dann das Problem. Ich muss halt den CRC von einem Array und ein paar anderen Variablen zusammen berechnen ... und da wollte ich eine Art CRCAddValue-Funktion auslagern... Kann mir einer sagen, wo ich da ansetzen muss. Bin relativ ratlos!!! Gruß, see4far
könnte sein! wie stell ich das fest? und wie behebe ich das? mfg see4far
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.