IF ....THEN.... problems


Closed Thread
Results 1 to 17 of 17

Hybrid View

  1. #1
    Join Date
    Aug 2010
    Location
    Maryland, USA
    Posts
    869


    Did you find this post helpful? Yes | No

    Default Re: IF ....THEN.... problems

    try coding like this:
    Code:
    IF (timer = 1) and (relay = 1) then
    I am not sure if this will work, it seems maybe relay never = 1?
    -Bert

    The glass is not half full or half empty, Its twice as big as needed for the job!

    http://foamcasualty.com/ - Warbird R/C scratch building with foam!

  2. #2
    Join Date
    Feb 2011
    Posts
    9


    Did you find this post helpful? Yes | No

    Unhappy Re: IF ....THEN.... problems

    yes relay will be =1 . I will explain. The timer is hardware piece with ne 555 and it has a relay on board. The portb.0 turning on timer(with transistor), and timer relay is on(relay = 0) for some time depending of potentiometer position. After timer turn off(ne555 ), the portb.0 is still on, but timer is not on becouse ne555 turn it off.The relay is off but it is connected to a porta.1 like button. So if relay is off, the pin porta.1 is on high (1) (pull up resistor). That is why the relay = 1 (it should be off and portb.0 is on, but timer is off).
    I hope you have understand me .

    All I need is to do this, example:
    begin:
    IF step1 AND step2 THEN
    step3

    IF step1 AND step2 THEN
    step4

    IF step1 AND step2 THEN
    step5

    goto begin
    end



    with this order.

  3. #3
    Join Date
    Aug 2010
    Location
    Maryland, USA
    Posts
    869


    Did you find this post helpful? Yes | No

    Default Re: IF ....THEN.... problems

    so can you do this:
    Code:
    IF (step 1) and (step 2) then : ' notice the : it lets you have multiple steps
     step 3
     step 4
     step 5
    endif
    did you try it with () around the conditions?
    -Bert

    The glass is not half full or half empty, Its twice as big as needed for the job!

    http://foamcasualty.com/ - Warbird R/C scratch building with foam!

  4. #4
    Join Date
    Feb 2011
    Posts
    9


    Did you find this post helpful? Yes | No

    Smile Re: IF ....THEN.... problems

    I am using 16F84, all porta have been declarated as inputs( it is like pushbuttons) It works on the begining.. Yes I`ve tried this with ( ) and there is no difference still not working as I want. Maybe this can be done with while....wend or for.... cycle....just don`t know how.

  5. #5
    Join Date
    May 2010
    Location
    Chile
    Posts
    25


    Did you find this post helpful? Yes | No

    Default Re: IF ....THEN.... problems

    In 16F84 MCLR pin can't be disabled, so 4k7 resistor pullup to +5V or its never going to work
    Also for the used inputs use 10K pullups and instead of using the button command, try something a lot simpler:

    Code:
    b0 = 0 'reset flag
    if ti = 0 then 'if pullup pin is in ground
        b0 = 1 'activate button press flag
        pause 250 'debounce
    endif
    Try explaining a little better your circuit so i can help you with your code (maybe an schematic or diagram?)

    Also remeber that a 16F84 its not the same as a 16F84A for the compiler, check for that.
    "If at first doesn't work, kicking it wont help either"

  6. #6
    Join Date
    Feb 2011
    Posts
    9


    Did you find this post helpful? Yes | No

    Default Re: IF ....THEN.... problems

    Thanks for your quick response. I wroted a scheme, but it is hand drawing for now, I hope it will be ok.
    In the mean time, I found a way to get this work, but there is another problem again.
    This is code:

    TRISA = $FF 'Postavi sve pinove porta A kao ulazne
    TRISB = $00 'Postavi sve pinove porta B kao izlazne
    B0 var byte
    i var byte
    symbol t1 = porta.1
    symbol tajmer = portb.0
    symbol rele = porta.0


    begin:
    pause 100 'vrlo bitna pauza'
    while tajmer = 1 and rele = 1
    goto petlja
    petlja:
    i = 0
    for i = 1 to 2
    If i = 1 then
    pause 300
    goto petlja1
    endif

    if i = 2 then
    pause 300
    goto petlja2
    endif

    next i

    petlja1:
    PAUSE 500
    tajmer = 0 'iskljuci tajmer'
    portb.1 = 0 'ukljuci crvenu diodu veliku'
    pause 3000 'pauza 3 sekunde'

    petlja2:
    tajmer = 1
    portb.2 = 0 'ukljuci diodu zelenu'
    portb.1 = 1 'iskljuci crvenu diodu'
    pause 200

    wend 'vrlo bitna pauza'

    IF tajmer = 1 AND rele = 1
    portb.3 = 0
    portb.1 = 1
    portb.2 = 1
    ENDIF

    B0 = 0
    button t1,0,255,0,B0,1,ukljucenje 'ako je taster pritisnut idi na ukljucenje'

    goto begin

    ukljucenje:
    tajmer = 1


    goto begin

    End

    The commented is in Serbian so don`t look at it .

    The code do following: after press a pushbutton t1, tajmer is on and it works until it turn off, but only a timer. Its transistor is still on and have to be off and again on to reset. Now transistor for timer is off, some leds are on, pause 3 seconds, then on again transistor and timer, after a while timer goes off, and continuo for the begining again.
    The problem now is how to continue to cycle after wend and not to go from begin what this program do ? Becouse program after wend go from the begining again, not considering this IF...AND....Then after wend. I need this, and maybe more examining loops before going to begin again. Maybe this FOR cycle is not good?
    Kind regards.
    Attached Images Attached Images  

  7. #7
    Join Date
    Aug 2010
    Location
    Maryland, USA
    Posts
    869


    Did you find this post helpful? Yes | No

    Default Re: IF ....THEN.... problems

    Your IF..Then's are causing you to jump out of the for...next. If you change the GOTO to GOSUB, then add a RETURN after the blocks of code you are jumping to, maybe this will fix the problem.

    I must admit I don't really get the goal of your program, but I think you don't intend to jump out maybe?
    -Bert

    The glass is not half full or half empty, Its twice as big as needed for the job!

    http://foamcasualty.com/ - Warbird R/C scratch building with foam!

  8. #8


    Did you find this post helpful? Yes | No

    Default Re: IF ....THEN.... problems

    Dumb question, what pic are you using and have you set PORTA.0 and 1 to digital?

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