Connect with us

24 bit math so I can read and write

Discussion in 'Electronic Basics' started by Randy, Mar 27, 2007.

Scroll to continue with content
  1. Randy

    Randy Guest

    I am writing and reading to a microcontroller.
    My largest allowable variables are 16 bit and 8 bit
    How can I write a 24 bit value when I am limited by 16 and 8 bit

    For instance I need to send a register value of HEX 200110 which is
    configured for 24 bits.
    This is equal to 2,097,424 in decimal format.
    How do I divide this up into a 16 and 8 bit or 3 8-bit variable values
    to send and receive?
    I can send it HEX or Binary.

  2. James Beck

    James Beck Guest

    You hit on it below.
    You read/write 3 8 bit pieces.
    Well it kinda' depends.
    How is the variables laid our in memory?
    If it were an HC05 part I would know the variable is most likely stored
    as three 8 bit values with the lowest address holding the upper byte
    address+1 is the middle byte and address+2 is the low byte.
    Other CPU/MCUs do it just the opposite.
    Google "big endian" or "little endian"
    Now, all you have to do is send those 3 bytes and you are done.
    If you are using a high level language that supports INT24s then the
    task is even easier. Just do shifts and mask off the byte you want to

  3. Randy

    Randy Guest

    Jim, I am using a Basic Stamp BS2.
  4. Noway2

    Noway2 Guest

    If the platform you are using does not support numbers large enough for
    your needs, then you need to roll your own routines. A while back, I
    worked on an application that performed 24 bit arithmetic with an 8 bit
    Motorola 65xx series processor. The math routines were modeled after
    the grade school methods of long hand multiplication and division.

    As far as transferring or storing data, it doesn't matter what format it
    is in. To the computer it is all the same. You need to decide on the
    protocol that will be used between the devices. The data doesn't
    matter, the key is how it is interpreted.
  5. James Beck

    James Beck Guest

    OK, what are you sending this 24bit data to and how is it being sent
    (uart, I2C, so on).

  6. John

    John Guest

    You might want to check on the PICAXE forum

    There's been recent discussion on how to do 24 (and 32) bit
    arithmetic. Since the PICAXE is programmed in a dialect of BASIC, the
    conversion to Stamp should be relatively simple.

  7. James Beck

    James Beck Guest

    I might have been a bit slow, BUT I think he is trying to write to some
    type of device's configuration register. If that is the case just hard
    coding the three bytes into the code would be good enough to get by. I
    think what threw me was the "math" word.

Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day