Bits, Bytes Words and Arrays


+ Reply to Thread
Results 1 to 25 of 25

Hybrid View

  1. #1
    Join Date
    Mar 2011
    Posts
    6


    Did you find this post helpful? Yes | No

    Default Re: Bits, Bytes Words and Arrays

    Henrik,

    Thanks for your help. I not tried exaktly this (i have no LCD)

    I tried this:

    MR var word: H var byte

    for H=0 to 15
    MR.0[H]=1 'set bit H of MR
    next H

    This works fine in PicBasic but when compiling in PicBasicPro this bits never are set. Other things in my code (about 8k) works perfect. I have only problems when adressing bits form words or bytes

    Maybe I have a library instalation problem?

  2. #2
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,622


    Did you find this post helpful? Yes | No

    Default Re: Bits, Bytes Words and Arrays

    Hi,
    That is weird.... This code:
    Code:
    MR var word: H var byte
     
    MR = 0
    HSEROUT ["First, all zeros:",13]
    HSEROUT ["MR = ", BIN16 MR,13,13]
     
    MR=65535
    HSEROUT ["Then, all ones:",13]
    HSEROUT ["MR = ", BIN16 MR,13,13]
    
    for H=0 to 15
        MR.0[H]=0  'reset bit H of MR
    next H
    HSEROUT ["Next, all zeros again:",13]
    HSEROUT ["MR = ",BIN16 MR,13,13]
     
    for H=0 to 15
      MR.0[H]=1 'set bit H of MR
    next H
    HSEROUT ["And finally, all ones:",13]
    HSEROUT ["MR = ", BIN16 MR,13,13]
     
    Pause 10
    END
    Produces the following result on the serial terminal:
    Code:
    First, all zeros:
    MR = 0000000000000000
     
    Then, all ones:
    MR = 1111111111111111
     
    Next, all zeros again:
    MR = 0000000000000000
     
    And finally, all ones:
    MR = 1111111111111111
    The FOR-NEXT loop is copy-pasted from your post above. How do you know it's not setting the bit? Do you have serial line to which you can send the data as above? Is there any chanse something else in the program is resetting/changing MR before you have chanse to see it? What version of PBP? (I'm using 2.60)

    /Henrik.

  3. #3
    Join Date
    Mar 2011
    Posts
    6


    Did you find this post helpful? Yes | No

    Default Re: Bits, Bytes Words and Arrays

    Thanks,

    I tried to run the isolated code and it works. :S
    I'm sorry. I tested only the complete program before.

    Sure the problem is in the code between. the weird is it works compiled with PicBasic and not when compiled with PicBasicPro.

    I will check possible causes...

    Thanks again.

    Ricard.

  4. #4
    Join Date
    Mar 2011
    Posts
    6


    Did you find this post helpful? Yes | No

    Default Re: Bits, Bytes Words and Arrays

    Hello,

    I have more information.

    I started commenting all the lines between this code, resulting the same. MR value is 0.
    Next, I continued commenting all the lines outside this code. Result the same. MR value is 0.
    Finally, I decided to comment step by step my array variables.

    After 2 o 3 arrays commented I get MR=65535.

    I repeated this process commenting other variables randomly with the same result. After 2 o 3 steps MR=65535.

    My code is about 8k over a Pic16F877. Very fair but fits.

    My conclusion is PicBasicPro compiler needs more memory for variables than PicBasic.

    The weird is why the compiler gives no errors...

    Many thanks,

    Ricard.

  5. #5
    Join Date
    Feb 2007
    Posts
    55


    Did you find this post helpful? Yes | No

    Default Re: Bits, Bytes Words and Arrays

    ok... I've built an 8x8x8 LED cube using 18F452, I have encountered a problem with my array

    each of the 512 leds as 1 bit assigned to it from leddata array

    0 = bottom corner
    511 = the top corner of the cube


    leddata VAR BYTE[64]
    litled VAR WORD

    litled = 511
    leddata.0(lilted) = 1

    the above 2 lines lights up an led half way down the cube (I think it would correspond to 255)

    but if I write this:

    leddata.0(511) = 1

    the correct LED lights up at the top corner of the cube

    Any ideas?
    Last edited by wellyboot; - 13th June 2016 at 19:56. Reason: error

  6. #6
    Join Date
    Nov 2003
    Location
    Greece
    Posts
    4,170


    Did you find this post helpful? Yes | No

    Default Re: Bits, Bytes Words and Arrays

    You have an error in the variable litled.

    leddata.0(lilted) = 1

    It appears as lilted.

    Ioannis

  7. #7
    Join Date
    Feb 2007
    Posts
    55


    Did you find this post helpful? Yes | No

    Default Re: Bits, Bytes Words and Arrays

    awww that was an autocorrect on here, not in my code

    changed litled to 'lit' still no change,

    I've changed my code now to address each led using X,Y,Z
    and it is working ok


    xl = 7
    zl = 7
    yl = 7
    GOSUB ledon

    ledon:
    ledonbyte = xl + (yl*8)
    ledtemp = leddata[ledonbyte]
    ledtemp.0(zl) = 1
    leddata[ledonbyte] = ledtemp
    RETURN

  8. #8
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,622


    Did you find this post helpful? Yes | No

    Default Re: Bits, Bytes Words and Arrays

    Hi,
    I had a similar issue a couple of years (5) ago. Like you I found that indexing using a constant works but indexing using a variable doesn't (for bits beyond 255). And you, just like me back then, didn't bother to check the manual...
    7.6.4 Accessing Arrays as Multiple Variable-Types
    It is possible for a single array to be declared with multiple names and for each name to be assigned a different variable type. Note that offsets for BITs are limited to a maximum value of 255.
    So, I Think Melanies post where she indicates that using a WORD as the pointer for indexing bits in a BYTE Array really isn't correct.

    Here's my thread.

    /Henrik.

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 : 3

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