my $send_cmd; my $strToSend; my $strReceived; my $CRC16; my $CRCreg; my $cp; my $bp; my @s; my $s; sub testcrc { #Beim Senden ist zu beachten, dass für die Berechnung der Checksumme #an den String noch zwei Null-Bytes ("\x00\x00") anzuhängen sind. #Die berechnete Checksumme wird dann anstelle dieser beiden Null-Bytes gesendet. #("\x00\x00") $strToSend = "\0xfe\0x04\0x01"; $CRC16 = GetCRC16($strToSend. 0x0000); # ergibt / gives "BED2" print "Checksum 1: ". sprintf("%X", $CRC16). "\r\n"; $strReceived = "\0xfe\0x04\0x01\0xBE\0xD2"; $CRC16 = GetCRC16($strReceived); # ergibt / gives "0" print "Checksum 2: ". sprintf("%X", $CRC16). "\r\n"; goto MENUE; } sub GetCRC16{ $CRCreg = 0xffff00; $s = $_[0]; @s=split(//,$s); for ($cp=0; $cp> 8; }