Problem med kontrollsumman från GPS (NMEA 0183)

Knåpade ihop en rutin till en PIC-mikrokontroller som kontrollerar kontrollsumman för nmea 0183 strängar från en GPS. Stämmer perfekt för en sträng som jag även testade att räkna ut för hand, nämligen denna: $PGRMM,WGS 84*06

men för denhär: $GPGLL,,,,,,V,N*64 Får mitt program kontrollsumman till 28 (hexadecimalt). Är rätt så säker på att min program är ok..

Kontrollsumman räknas ut Såhär enligt Garmin:

formatting link

Någon som tror sig veta varför det blir såhär? Vad gör jag fel? Kan lägga upp PIC asm koden om det behövs senare..

Tacksam för hjälp. vh/ Johan Olofsson

Inviato da X-Privat.Org - Registrazione gratuita

formatting link

Reply to
johan
Loading thread data ...

formatting link

Checksumman ska vara 64h (står ju i strängen efter *) och det får jag det också till - både manuellt och med ett litet program i gamla trogna HP 28S. Räkna manuellt på "GPGLL,,,,,,V,N" så ser du att det blir

1100100b, d v s 64h.

Har - lite hastigt - försökt att komma på hur ditt asm-prog kommer fram till 28h, men tyvärr...

/ mw

Reply to
Micke W

Tack för hjälpen Micke!

Jo du har såklart helt rätt, satte mig och räknade för hand och det blev såklart 64. Så nu hittade jag även felet i mitt program.

Eftersom GPGLL sorteras bort vid identifieringen så la jag till XOR av GPGLL som startsumma, men där hade jag såklart klantat till det och räknat fram fel.. Usch så klantigt. Men nu är det åtgärdat och funkar.

vh/ Johan

Inviato da X-Privat.Org - Registrazione gratuita

formatting link

Reply to
johan

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.