Bits, Bytes Words and Arrays


+ Reply to Thread
Results 1 to 25 of 25

Hybrid View

  1. #1
    anj's Avatar
    anj Guest


    Did you find this post helpful? Yes | No

    Default

    Gday Melanie
    I just read this post and found it quite interesting.
    On 6mar2004 i posted on the Picbasic Pro forum, re Accessing the PICs ports in subroutines.
    Particularly the ability to access ports not covered by the std 0..15 references.
    I never found anything on this in the manual, but it meant i could put direct port addressing into subroutines, by always addressing the required port relative to porta.0 .
    Maybe you could modify this post to include access to ports by the referential aliasing method as well?
    Just a thought.
    Andrew

  2. #2
    Join Date
    Dec 2004
    Location
    USA
    Posts
    36


    Did you find this post helpful? Yes | No

    Question words into byte array

    Found this interesting bit of ancient history. It covers all the options except the one I'm looking for. I need to put some words into a byte array.

    settings VAR byte[1]

    counter1.byte1 VAR settings[0]
    counter1.byte0 VAR settings[1]

    -does not appear to work

    Klaus

  3. #3
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959


    Did you find this post helpful? Yes | No

    Default

    6. How can I reference a WORD in a BYTE ARRAY?

    Let's say that you have a WORD located at bytes 3 and 4 of a BYTE array, and Byte 3 is the LowByte. You can use the EXT (external) modifier to assign it to a WORD variable.


    MyByteArray VAR BYTE[10]

    MyWord VAR WORD EXT
    @MyWord = _MyByteArray + 3

    DT

  4. #4
    Join Date
    Dec 2004
    Location
    USA
    Posts
    36


    Did you find this post helpful? Yes | No

    Default

    Thanks Darrel,

    Your example will put the low byte into the array. How do I get the high byte in?

    MyByteArray VAR BYTE[10]
    MyWord.byte0 VAR MyByteArray[3]

    or

    MyByteArray VAR BYTE[10]
    MyWord.byte1 VAR MyByteArray[3]

    will work as well.

    I can read in either the high or low byte, but not both of them.

  5. #5
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959


    Did you find this post helpful? Yes | No

    Default

    It creates an Aliased WORD variable, inside the BYTE array.

    When you assign a value to the WORD variable, it puts both BYTEs in the array in a single operation.

    MyWord = $1234

    will make MyByteArray look like this

    [00, 00, 00, 34, 12, 00, 00, 00, 00, 00]

    HTH
    DT

  6. #6
    Join Date
    Dec 2004
    Location
    USA
    Posts
    36


    Did you find this post helpful? Yes | No

    Default

    Thanks again Darrel. That's almost too slick to be true. When you start throwing around those "@" signs it becomes a little mystical for me.

    I will try it and let you know.

  7. #7
    Join Date
    Jun 2006
    Location
    Bangalore, India
    Posts
    136


    Did you find this post helpful? Yes | No

    Thumbs up Thank You

    After searching the whole forum for an hour or so i stumbled upon this page.
    Finally i can dynamically access bits of a variable. This has really helped me a lot.
    Thank you Melanie .

Similar Threads

  1. LP Instant Interrupts Error
    By Kamikaze47 in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 7th December 2009, 10:13
  2. how to store a very large amount of data
    By shaiqbashir in forum mel PIC BASIC Pro
    Replies: 13
    Last Post: - 2nd April 2008, 07:05

Members who have read this thread : 2

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