Hi,
ich kann leider kein PicAxe - Basic, aber ich kann es Dir "schematisch" übersetzen.
Den zu prüfenden Bereich musst Du Byteweise an die Funktion CRC16 übergeben.
crc ist sicherlich anfangs 0 und wird sich dann beim Durchlaufen entsprechend anpassen.
Funktion CRC16 (crc unsigned16Bit, value unsigned8Bit)
value = caste die Variable value von unsigned8Bit auf signed16Bit
value = shifte alle Bits von value nach links um 8 Stellen
crc = crc XOR value
For-Schleife (8 mal):
wenn (crc AND 0x8000 = true)
dann
shifte crc nach links um 1 XOR 0x1021 Stellen
ansonsten
shifte crc nach links um 1 Stelle
gib crc als Funktionswert für CRC16 zurück
Die Befehle und Variablentypen musst Du Dir dann selber passend heraussuchen.
Hoffe ich hab da nun kein dummen Fehler eingebaut, aber deine Ausgangsfunktion ist nicht vollständig aus der Dokumentation kopiert. Da fehlt anfangs bereits ein Teil der shift-Funktion.
0x8000 oder 0x1021 sind hex schreibweisen, du kannst die auch decimal oder bitweise angeben, wenn PicAxe das besser kann.
casten bedeutet, eine Variable von einem Typ in einen anderen überzuleiten, hier will man aus einer 8Bit Variable eine 16 Bit Variable machen.
shiften bedeutet, alle Bits einer Variable nach rechts oder links zu verschieben. Um so viele Stellen, wie eben angegeben sind.
Gruß Andreas