Dallas CRC8 Routines


Closed Thread
Results 1 to 24 of 24

Hybrid View

  1. #1
    Join Date
    Jan 2004
    Location
    Grand Lake O' Cherokees USA
    Posts
    15


    Did you find this post helpful? Yes | No

    Default

    I'm not a VB person, don't even own a copy to try your routine.

    The routines I wrote were for the Dallas Semiconductor CRC8 check. Any other CRC routine may not work in the same manner. I note you changed the table entries which may be in a effort to fix this but that may not always work either. Some CRC routines calculate with a different poly or "reflected" or changed in other ways. You will need to find out the particulars of the CRC your device is sending.

    If you are trying to emulate the Dallas 1wire CRC8 then the table values you have are incorrect.
    Tom

  2. #2


    Did you find this post helpful? Yes | No

    Default

    Tom,

    I finally have everything working properly. Thank you so very much for your help and understanding.
    Last edited by CocaColaKid; - 15th August 2005 at 19:59.

  3. #3
    taats's Avatar
    taats Guest


    Did you find this post helpful? Yes | No

    Default Crc8

    after a couple of hours of hard work, i got it working now...

    so thanks anyway!!,

    Taats

  4. #4


    Did you find this post helpful? Yes | No

    Default

    Is there an easier way to do this?

    owin portb.7,0,[data_in[0], data_in[1], data_in[2], data_in[3], data_in[4], data_in[5], data_in[6], data_in[7], data_in[8]]

  5. #5
    Join Date
    Jan 2004
    Location
    Grand Lake O' Cherokees USA
    Posts
    15


    Did you find this post helpful? Yes | No

    Default

    Using other 1wire devices I have been able to do the following:

    ' Read the next 32 bytes, calculate running CRC but discard the bytes
    For Index = 1 to 32
    OWIn OWPort, 0, [CRCData]
    GoSub CRC
    Next Index
    OWIn OWPort,0,[DesiredData]
    CRCData = DesiredData
    GoSub CRC

    In other words there may be enough time in between data bytes sent from the 1 wire device to calculate the CRC on a running basis. If you don't need all the data the CRC can be calculated and the data discarded, retaining only that data you need.
    Tom

  6. #6


    Did you find this post helpful? Yes | No

    Default

    I was wondering if that would actually work or not. This is my final line. Again thanks for all your help.
    Code:
        for x = 0 to 8
        owin portb.7,0,[i]
        dq[x] = i
        next x

Similar Threads

  1. Problems with CRC8 Calc in 1Wire
    By JohnB in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 16th March 2007, 22:01
  2. dallas ibutton to pics
    By CBUK in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 25th October 2006, 12:55
  3. Dallas 1-wire search Routine
    By jimbab in forum Code Examples
    Replies: 0
    Last Post: - 7th April 2006, 16:14
  4. Dallas Semiconductor Components Serial Numbers
    By ideaman234 in forum General
    Replies: 2
    Last Post: - 27th February 2006, 22:17
  5. Dallas CRC16 Routines
    By Tom Estes in forum Code Examples
    Replies: 0
    Last Post: - 16th May 2005, 15:29

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts