10F222 ADRES as one more VAR?


Closed Thread
Results 1 to 9 of 9

Hybrid View

  1. #1
    Join Date
    Nov 2005
    Location
    Bombay, India
    Posts
    967


    Did you find this post helpful? Yes | No

    Default

    I would look at the LST file to see which variables PBP is not using; just allocating. Let me explain

    If you look at pause or maybe pauseus, you will see that PBP uses the R0 and R1 registers each WORD type to handle the delay function. Similarly, PBP uses variables T1 to T4 for Boolean arithmetic (I deduced this by looking at the lst file). You can salvage some RAM by breaking up logical ANDs to a nested if structure - something like this

    Code:
         ' typical logical and
         if  testcondition1 and testcondition2 then
                 do something
         endif
    
         ' typical logical or
         if testcondition3 or testcondition4 then
                 do somethingelse
         endif
    can be changed to
    Code:
         ' simplified logical and
         if testcondition1 then
              if testcondition2 then
                    do something
              endif
         endif
    
         ' simplified logical OR
         if testcondition3 then dosomethingelse
         if testcondition4 then dosomethingelse
    the second structure does not involve the T1..T4 variables of PBP and is resource friendly.

    Hopefully not using the logical operations of PBP will let PBP yeild the T1 to T4 registers???

    A look into the Listing file will yeild some more. I haven't gone into the details yet.
    Last edited by Jerson; - 10th May 2010 at 09:14. Reason: added stuff

  2. #2


    Did you find this post helpful? Yes | No

    Default No go for using ADRES :(

    Okay, I guess that explains why I couldn't get my program working, would have been nice to use ADRES.

    As far as the booleans, I cannot use them now without getting the "unable to fit variable" error.

    I currently use one word sized and one byte sized variable.

    When I look at the list file I see that R2 and R3 are not used. Does that mean I can do something like;
    Code:
    NewVariable  VAR   R2
    New approach, I set OPTION_REG.5 = 1 so that TMR0 would not increment and I am using that for my missing byte. It is working so far... but if I can use R2 or R3 that would be better because I wanted to try to use TMR0.

    Rich H

  3. #3
    Join Date
    Nov 2005
    Location
    Bombay, India
    Posts
    967


    Did you find this post helpful? Yes | No

    Default

    Looks like you can get by doing that. Try it out!!!

  4. #4
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    With Timer0 clock source set to external, and using TMR0 register as a variable, I would check to make sure TMR0 isn't incrementing when taking GP2 high/low.

    Some internal counters, when configured for external clocks, will increment if you're using the pin as an output & toggling the pin.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

Members who have read this thread : 0

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

Tags for this Thread

Posting Permissions

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