Old classic If-Then...


Closed Thread
Results 1 to 17 of 17

Hybrid View

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


    Did you find this post helpful? Yes | No

    Default

    Hi Alain.

    On the following if I try to put the second if-then inside the logic expression, I get an "Temp variables exceeding T4" error in MPASM assembler.

    This compiles OK:
    Code:
    if pump=0 and (thermistor1=1 or thermiko1=1 or onboard_an2>(pres_limit+10)) then 
    	module_rel_out.0=0
    endif
    
    
    if level>stop_level then
    	if pump=0 then
    		module_rel_out.0=0
    	endif
    endif
    This produces the above error:

    Code:
    if pump=0 and (thermistor1=1 or thermiko1=1 or onboard_an2>(pres_limit+10) or level>stop_level) then 
    	module_rel_out.0=0
    endif
    Thanks,
    Ioannis

  2. #2
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,653


    Did you find this post helpful? Yes | No

    Wink

    Hi, Ioannis

    Do not use " IF thermistor1 = 1" but "IF Thermistor" ... result is the same

    Do not use " IF thermistor1 = 0 " but "IF NOT Thermistor" ... result is the same

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

  3. #3
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,653


    Did you find this post helpful? Yes | No

    Wink

    Code:
    if  (pump=0) and ( thermistor1 or thermiko1 or ( onboard_an2>(pres_limit + 10))) then 
    	module_rel_out.0=0
    endif
    
    
    if (level>stop_level) then
    	if pump=0 then
    		module_rel_out.0=0
    	endif
    endif
    Compile fine

    BUUUUUUT ... I do think you should make your Karnaugh Table ( Table of states ) "a bit" clearer ... might help a lot ( lol )

    Alain

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

  4. #4
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default

    Thanks Alain,
    For
    Code:
    RANDOM Level
    RANDOM Onboard_An2
    It gives me a new test tool, never could see a use for that command before. Sometimes it's not the main point of your posting that benefits others, sometimes it's the little things that you use everyday.
    Last edited by Archangel; - 1st November 2008 at 21:19.
    If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
    .
    Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
    .
    There simply is no "Happy Spam" If you do it you will disappear from this forum.

  5. #5
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Acetronics View Post
    Hi, Ioannis

    Do not use " IF thermistor1 = 1" but "IF Thermistor" ... result is the same

    Do not use " IF thermistor1 = 0 " but "IF NOT Thermistor" ... result is the same

    Alain
    Could you please explain a little more, so I can understand why ?
    Thank You
    If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
    .
    Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
    .
    There simply is no "Happy Spam" If you do it you will disappear from this forum.

  6. #6
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    I understand why.. the problem is to explain... enjoy the following language barrier mess

    If ConditionIsTrue Then DoSomething

    Dealing with Bit Var, you have ONLY 2 choices... OR the var is 1 OR the var 0, True or False.

    So why messing with condition if your variable already hold it?

    It's just another way to write your IF-THEN
    Last edited by mister_e; - 1st November 2008 at 21:41.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

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


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Ioannis View Post
    I get an "Temp variables exceeding T4" error in MPASM assembler.
    Hi Ioannis,

    That error is comming from ReEnterPBP.bas

    There's no way for it to know if the complex formula/IF statement is in the main program or the interrupt handler. And if it's in the handler, it will end up overwriting PBP's system vars.

    If you know for sure that the offending statements are NOT in the handler. You can open the ReEnterPBP.bas file and comment the error line.
    Code:
            ifdef T5
    ;            ERROR "Temp variables exceeding T4"
            endif
    HTH,
    DT

  8. #8
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Darrel Taylor View Post
    Hi Ioannis,

    That error is comming from ReEnterPBP.bas

    There's no way for it to know if the complex formula/IF statement is in the main program or the interrupt handler. And if it's in the handler, it will end up overwriting PBP's system vars.

    If you know for sure that the offending statements are NOT in the handler. You can open the ReEnterPBP.bas file and comment the error line.
    Code:
            ifdef T5
    ;            ERROR "Temp variables exceeding T4"
            endif
    HTH,
    Hi Darrel,
    So if I understand this right, ERROR is a reserved word in assembler, and if IFDEF calls it then MPASM displays the error when compiling . . . YES?<br><br> Hi Steve, thanks , I will give that some thought.
    If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
    .
    Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
    .
    There simply is no "Happy Spam" If you do it you will disappear from this forum.

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


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Joe S. View Post
    Hi Darrel,
    So if I understand this right, ERROR is a reserved word in assembler, and if IFDEF calls it then MPASM displays the error when compiling . . . YES?
    Yup. You got it.
    DT

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


    Did you find this post helpful? Yes | No

    Default

    Hi. Thanks for the replies.

    Alain: I was going to use the syntax later (if thermistor then...), after I had my program working. But as Darrel explained, this would have no effect as the error was coming from the ReEnterPBP.bas.

    Darrel: Thanks for the explanation. I forgot to mention that I was using yours routine for the Interupts, sorry... But did not imagine that this could be coming from the ReEnterPBP.bas. It seemed more logical to be a problem of the Assembler or Compiler.

    Useful the tip for the error.

    Anyway, many thanks to all.

    Ioannis

Similar Threads

  1. Classic
    By Haggar in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 18th April 2005, 10:57

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