Skip to content

Instantly share code, notes, and snippets.

Created February 7, 2013 11:09
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anonymous/52542c13034fe308ac2a to your computer and use it in GitHub Desktop.
Save anonymous/52542c13034fe308ac2a to your computer and use it in GitHub Desktop.
Dim USCRC(0 To 255) As Long
Public Function CRC16NUMERIC(s As String) As String
Dim x As Long
Dim crc As Long
Dim i As Integer
If (USCRC(1) <> &HC0C1) Then
mbus_FillCRCTable
End If
crc = 65535
For i = 1 To Len(s)
x = asc(Mid(s, i, 1))
x = (crc Xor x) And 255
x = USCRC(x) And 65535
crc = (crc \ 256) Xor x
Next i
CRCLo = crc Mod 256
CRCHi = (crc - CRCLo) / 256
CRC16NUMERIC = crc
End Function
Public Sub mbus_FillCRCTable()
USCRC(0) = &H0: USCRC(1) = &HC0C1: USCRC(2) = &HC181: USCRC(3) = &H140
USCRC(4) = &HC301: USCRC(5) = &H3C0: USCRC(6) = &H280: USCRC(7) = &HC241
USCRC(8) = &HC601: USCRC(9) = &H6C0: USCRC(10) = &H780: USCRC(11) = &HC741
USCRC(12) = &H500: USCRC(13) = &HC5C1: USCRC(14) = &HC481: USCRC(15) = &H440
USCRC(16) = &HCC01: USCRC(17) = &HCC0: USCRC(18) = &HD80: USCRC(19) = &HCD41
USCRC(20) = &HF00: USCRC(21) = &HCFC1: USCRC(22) = &HCE81: USCRC(23) = &HE40
USCRC(24) = &HA00: USCRC(25) = &HCAC1: USCRC(26) = &HCB81: USCRC(27) = &HB40
USCRC(28) = &HC901: USCRC(29) = &H9C0: USCRC(30) = &H880: USCRC(31) = &HC841
USCRC(32) = &HD801: USCRC(33) = &H18C0: USCRC(34) = &H1980: USCRC(35) = &HD941
USCRC(36) = &H1B00: USCRC(37) = &HDBC1: USCRC(38) = &HDA81: USCRC(39) = &H1A40
USCRC(40) = &H1E00: USCRC(41) = &HDEC1: USCRC(42) = &HDF81: USCRC(43) = &H1F40
USCRC(44) = &HDD01: USCRC(45) = &H1DC0: USCRC(46) = &H1C80: USCRC(47) = &HDC41
USCRC(48) = &H1400: USCRC(49) = &HD4C1: USCRC(50) = &HD581: USCRC(51) = &H1540
USCRC(52) = &HD701: USCRC(53) = &H17C0: USCRC(54) = &H1680: USCRC(55) = &HD641
USCRC(56) = &HD201: USCRC(57) = &H12C0: USCRC(58) = &H1380: USCRC(59) = &HD341
USCRC(60) = &H1100: USCRC(61) = &HD1C1: USCRC(62) = &HD081: USCRC(63) = &H1040
USCRC(64) = &HF001: USCRC(65) = &H30C0: USCRC(66) = &H3180: USCRC(67) = &HF141
USCRC(68) = &H3300: USCRC(69) = &HF3C1: USCRC(70) = &HF281: USCRC(71) = &H3240
USCRC(72) = &H3600: USCRC(73) = &HF6C1: USCRC(74) = &HF781: USCRC(75) = &H3740
USCRC(76) = &HF501: USCRC(77) = &H35C0: USCRC(78) = &H3480: USCRC(79) = &HF441
USCRC(80) = &H3C00: USCRC(81) = &HFCC1: USCRC(82) = &HFD81: USCRC(83) = &H3D40
USCRC(84) = &HFF01: USCRC(85) = &H3FC0: USCRC(86) = &H3E80: USCRC(87) = &HFE41
USCRC(88) = &HFA01: USCRC(89) = &H3AC0: USCRC(90) = &H3B80: USCRC(91) = &HFB41
USCRC(92) = &H3900: USCRC(93) = &HF9C1: USCRC(94) = &HF881: USCRC(95) = &H3840
USCRC(96) = &H2800: USCRC(97) = &HE8C1: USCRC(98) = &HE981: USCRC(99) = &H2940
USCRC(100) = &HEB01: USCRC(101) = &H2BC0: USCRC(102) = &H2A80: USCRC(103) = &HEA41
USCRC(104) = &HEE01: USCRC(105) = &H2EC0: USCRC(106) = &H2F80: USCRC(107) = &HEF41
USCRC(108) = &H2D00: USCRC(109) = &HEDC1: USCRC(110) = &HEC81: USCRC(111) = &H2C40
USCRC(112) = &HE401: USCRC(113) = &H24C0: USCRC(114) = &H2580: USCRC(115) = &HE541
USCRC(116) = &H2700: USCRC(117) = &HE7C1: USCRC(118) = &HE681: USCRC(119) = &H2640
USCRC(120) = &H2200: USCRC(121) = &HE2C1: USCRC(122) = &HE381: USCRC(123) = &H2340
USCRC(124) = &HE101: USCRC(125) = &H21C0: USCRC(126) = &H2080: USCRC(127) = &HE041
USCRC(128) = &HA001: USCRC(129) = &H60C0: USCRC(130) = &H6180: USCRC(131) = &HA141
USCRC(132) = &H6300: USCRC(133) = &HA3C1: USCRC(134) = &HA281: USCRC(135) = &H6240
USCRC(136) = &H6600: USCRC(137) = &HA6C1: USCRC(138) = &HA781: USCRC(139) = &H6740
USCRC(140) = &HA501: USCRC(141) = &H65C0: USCRC(142) = &H6480: USCRC(143) = &HA441
USCRC(144) = &H6C00: USCRC(145) = &HACC1: USCRC(146) = &HAD81: USCRC(147) = &H6D40
USCRC(148) = &HAF01: USCRC(149) = &H6FC0: USCRC(150) = &H6E80: USCRC(151) = &HAE41
USCRC(152) = &HAA01: USCRC(153) = &H6AC0: USCRC(154) = &H6B80: USCRC(155) = &HAB41
USCRC(156) = &H6900: USCRC(157) = &HA9C1: USCRC(158) = &HA881: USCRC(159) = &H6840
USCRC(160) = &H7800: USCRC(161) = &HB8C1: USCRC(162) = &HB981: USCRC(163) = &H7940
USCRC(164) = &HBB01: USCRC(165) = &H7BC0: USCRC(166) = &H7A80: USCRC(167) = &HBA41
USCRC(168) = &HBE01: USCRC(169) = &H7EC0: USCRC(170) = &H7F80: USCRC(171) = &HBF41
USCRC(172) = &H7D00: USCRC(173) = &HBDC1: USCRC(174) = &HBC81: USCRC(175) = &H7C40
USCRC(176) = &HB401: USCRC(177) = &H74C0: USCRC(178) = &H7580: USCRC(179) = &HB541
USCRC(180) = &H7700: USCRC(181) = &HB7C1: USCRC(182) = &HB681: USCRC(183) = &H7640
USCRC(184) = &H7200: USCRC(185) = &HB2C1: USCRC(186) = &HB381: USCRC(187) = &H7340
USCRC(188) = &HB101: USCRC(189) = &H71C0: USCRC(190) = &H7080: USCRC(191) = &HB041
USCRC(192) = &H5000: USCRC(193) = &H90C1: USCRC(194) = &H9181: USCRC(195) = &H5140
USCRC(196) = &H9301: USCRC(197) = &H53C0: USCRC(198) = &H5280: USCRC(199) = &H9241
USCRC(200) = &H9601: USCRC(201) = &H56C0: USCRC(202) = &H5780: USCRC(203) = &H9741
USCRC(204) = &H5500: USCRC(205) = &H95C1: USCRC(206) = &H9481: USCRC(207) = &H5440
USCRC(208) = &H9C01: USCRC(209) = &H5CC0: USCRC(210) = &H5D80: USCRC(211) = &H9D41
USCRC(212) = &H5F00: USCRC(213) = &H9FC1: USCRC(214) = &H9E81: USCRC(215) = &H5E40
USCRC(216) = &H5A00: USCRC(217) = &H9AC1: USCRC(218) = &H9B81: USCRC(219) = &H5B40
USCRC(220) = &H9901: USCRC(221) = &H59C0: USCRC(222) = &H5880: USCRC(223) = &H9841
USCRC(224) = &H8801: USCRC(225) = &H48C0: USCRC(226) = &H4980: USCRC(227) = &H8941
USCRC(228) = &H4B00: USCRC(229) = &H8BC1: USCRC(230) = &H8A81: USCRC(231) = &H4A40
USCRC(232) = &H4E00: USCRC(233) = &H8EC1: USCRC(234) = &H8F81: USCRC(235) = &H4F40
USCRC(236) = &H8D01: USCRC(237) = &H4DC0: USCRC(238) = &H4C80: USCRC(239) = &H8C41
USCRC(240) = &H4400: USCRC(241) = &H84C1: USCRC(242) = &H8581: USCRC(243) = &H4540
USCRC(244) = &H8701: USCRC(245) = &H47C0: USCRC(246) = &H4680: USCRC(247) = &H8641
USCRC(248) = &H8201: USCRC(249) = &H42C0: USCRC(250) = &H4380: USCRC(251) = &H8341
USCRC(252) = &H4100: USCRC(253) = &H81C1: USCRC(254) = &H8081: USCRC(255) = &H4040
End Sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment