Enhaced chacksum nach LIN 2.x

#1269969
Lesenswert?

Hallo alle.
Ich versuche gerade eine LIN Kommunikation herzustellen.
der Master wird von einem Modul emuliert (Baby-LIN).
den Slave implementiere ich mit einem ATA6662 und einem ATMEGA168.

ich erhalte am Master eine CHECKSUM ERROR.

Kann mir jemand sagen wo oder ob ein Fehler in der Berechnung der 
Checksumme liegt.

Danke im Voraus:
1
for (uint8_t i=0; i<6; i++){
2
          TMPchecksum= (uint16_t) TMPchecksum + Daten[i];  //Checksumme berechnen (CARRY-BIT fehlt noch)!!!!!!!
3
          TMPchecksum  = (uint8_t) ((TMPchecksum & 0x00FF) + (TMPchecksum >> 8));  
4
          }          
5
          TMPchecksum = (uint16_t)TMPchecksum+PID;        //Enhanced Checksumme!  
6
          //Low-Byte der checksumme + High-Byte der checksumme
7
          checksum  = (uint8_t) ((TMPchecksum & 0x00FF) + (TMPchecksum >> 8));        
8
          checksum= ~checksum;        //Checksumme invertieren

Gruß Sticky

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren