logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Bascom] warunek wykonania 2 działań na 1 porcie

fliper_katrill 10 Paź 2009 15:51 2113 9
REKLAMA
  • #1 7111523
    fliper_katrill
    Poziom 20  
    Witam serdecznie!
    Z tego co zdążyłem się zorientować to Bascom nie ułatwia budowania złożonych warunków if then i z tym mam problem. Chciałbym aby wykonała się instrukcja:
    
    if x<= zmienna and zmienna<y then
        Reset Portc.5
        Locate 2 , 10
        Lcd "%"
    else 
        Set Portc.5
        Locate 2 , 10
        Lcd " "
    end if
    
    if a<= zmienna and zmienna<b then
        Reset Portc.5
        Locate 2 , 10
        Lcd "%"
    else 
        Set Portc.5
        Locate 2 , 10
        Lcd " "
    end if
    


    czyli w 2 różnych niezależnych przedziałach czasowych ma się włączyć ten sam port.
    Program działa jedynie na 2 różnych portach poprawnie.
    Proszę szanownych kolegów o pomoc :)
  • REKLAMA
  • #2 7126932
    marco47
    Poziom 41  
    Kolego fliper_katrill
    Bo się wzajemnie wykluczają.
    Co to znaczy w różnych przedziałach czasowych?
  • REKLAMA
  • #3 7128179
    fliper_katrill
    Poziom 20  
    Już odpowiadam: x,a to godziny działania "od" a y,b to godziny działania "do", już problem rozwiązałem poprzez jeszcze jedną funkcje warunkową if then, czyli jeśli przedział a lub przedział b jest prawdziwy to uruchom urządzenie. No niestety Bascom kuleje pod kątem rozbudowanych warunków if then. Dziękuję za odzew :)
  • REKLAMA
  • #4 7130787
    marco47
    Poziom 41  
    Kolego fliper_katrill
    Nie pisz że Bascom kuleje pod kątem rozbudowanyvh warunków if fhen ! Napewno kuleje?
    Chyba coś innego kuleje.
    Pozdrawiam
  • #5 7132282
    fliper_katrill
    Poziom 20  
    A pospieram się troszkę :) proszę szanownego kolegę o przedstawienie konkretnego przykładu z rozbudowanym warunkiem a na pewno zmienię zdanie, taki jakiś ze 2 andy i chociaż 1 or...
  • REKLAMA
  • #6 7134910
    marco47
    Poziom 41  
    Nie za bardzo rozumiem tok Twojego myślenia w czasie pisania programu.
    Po co dwa razy powtarzasz to samo tylko z innymi zmiennymi. Jak napisałeś rozwiązałeś problem dodając jeszcze jedną funkcję warunkową if then . Gdybym widział cały kod wtedy odpowiedziałbym Tobie na zadane pytanie , jak to ugryść .
  • #7 7135141
    fliper_katrill
    Poziom 20  
    Dziękuję za zainteresowanie :) Już znalazłem rozwiązanie... chodzi o to, że:
    czas działania jednego urządzenia mogę podać czasowo od-do ale nie raz tylko 2 razy na dzień, (włącz światełko od 13 do 15 i od 20 do 21, stąd powstają dwa niezależne przedziały czasowe) problem był w tym aby oba wykonywać na jednym pinie portu bo wspomniane światło jest podłaczone jako moduł wykonawczy do jednego pinu ATmegi32. Opis jak sobie poradziłem jest kilka postów wyżej a problem z rozbudowaniem warunku jest taki, że w jednej linii nie mogłem podać tego warunku tak:
    
    if x<= zmienna and zmienna<y or if a<= zmienna and zmienna<b then 
    cośtam
    end if
    


    bo mi tego warunku Bascom nie rozumiał, choćbym i nawiasy nawrzucał :)
    Dzięki i pozdrawiam.

    Dodano po 2 [minuty]:

    wkradł się mały chochlik:
    
    if x<= zmienna and zmienna<y or a<= zmienna and zmienna<b then 
    cośtam 
    end if 
    

    tak miało być
  • #8 7135269
    marco47
    Poziom 41  
    Jeszcze można to uprościć dodając jedną zmienną bitową która była by odpowiedzialna za włączanie i wyłączanie światła , a warunki skrócić. Domyślasz się oco chodzi?
  • #9 7135443
    Freddy
    Poziom 43  
    Złożony warunek, proszę jest nawet w helpie

    
    IF A=1 OR A=2 OR A=3 OR B>10 THEN ...
    IF A=1 AND A>3 THEN....
    The conditions are evaluated from left to right.
    
  • #10 7140553
    fliper_katrill
    Poziom 20  
    Witajcie!
    Dziękuję za pomoc, co do zmiennej dodatkowej tak właśnie działa moje rozwiązanie o którym wspomniałem a co do warunków złożonych to nadal mam na myśli np:
    if .... and .... or ..... and.... then i to jest dla mnie warunkiem złożonym :)
    Jeszcze raz dziękuję :)
REKLAMA