Ken Websters PIC16C74 serial port multiplexer.

This code was developed by Ken Webster for his Time Source Monitoring Test System

14-bit core PIC source:

PC Windows NT or 95 or 98 source to talk to PIC:

Uses CRC and checksum and packet serial number to detect corrupt or missing packets. Chop out code that supports channels if you only need one device connected (this app is for connecting multiple devices via a multiplexer). If need help feel free to email me at ken@webster.org

; Apply W to command-interpreter receive checksums
update_crx_checksums    xorwf           rCmdxs,F          ;update plain checksum
                        xorwf           rCmdcl,F          ;update cyclic checksum
                        addwf           rCmdch,F
                        bcf             STATUS,C
                        rrf             rCmdch,F
                        btfsc           rCmdcl,0
                        bsf             rCmdch,7
                        rrf             rCmdcl,F
                        movlw           0x31
                        addwf           rCmdcl,F
                        btfsc           STATUS,C
                        incf            rCmdch,F
                        movlw           0x03
                        addwf           rCmdch,F                        return

void Checksum::Add(unsigned char c){    plain_checksum ^= c;
    cyclic_checksum ^= c;    cyclic_checksum += (unsigned short)c << 8;
    bool carry = (cyclic_checksum & 1) ? true : false;    cyclic_checksum >>= 1;
    cyclic_checksum |= carry ? 0x8000 : 0;    cyclic_checksum += 817;}

See:

Questions:

Comments: