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

[ATMEGA32][C/WINAVR] Porównanie czasów

gbr3 11 Mar 2009 21:09 1062 4
REKLAMA
  • #1 6269031
    gbr3
    Poziom 15  
    Witam!

    Buduje sterownik który będzie miał za zadanie kontrolować zawory od systemu podlewania trawnika.
    Mój problem polega na tym że nie mam pojęcia jak zrobić "przejście" przez godzinę 00:00.

    Kod:
    
    void sprawdz(uint8_t zawor)
    {
    	.....
    	
    	if(ton<toff)
    	{
    		if(ton<=current && current<toff)
    		{
    			v[zawor]=1;
    		}else
    		{
    			v[zawor]=0;
    		}
    	}
    	if(ton>toff)
    	{
    		?
    	}
    }
    


    Tyle sam doszedłem.Czasy zapisywane są w PCF8583.
    Jeżeli był już taki temat na forum to proszę o linka(długo googlowałem i szukałem na forum ale nic ciekawego nie znalazłem).
    Pozdrawiam :)
  • REKLAMA
  • #2 6269137
    kaktus_c++
    Poziom 18  
    void sprawdz(uint8_t zawor)
    {
       .....
       
       if(ton<toff)
       {
          if(ton<=current && current<toff)
          {
             v[zawor]=1;
          }else
          {
             v[zawor]=0;
          }
       }
       if(ton>toff)
       {
          if( (current>ton) || ((current<toff) && (current <ton)) )
         {
           v[zawor]=1;
         }
         else
        {
          v[zawor]=0;
        }
       }
    } 


    wogóle to powinieneś dodawać komentarze żeby chociaż było jasne czego dotyczą poszczególne zmienne
  • REKLAMA
  • #3 6269773
    gbr3
    Poziom 15  
    kaktus_c++ SUPER :D Działa :D Mógłbyś napisać coś więcej o "&&" i "||"?

    "Pomógł" klęknięto :)
  • REKLAMA
  • Pomocny post
    #4 6269936
    kaktus_c++
    Poziom 18  
    Cytat:
    "Pomógł" klęknięto

    - nie klękaj bo kolana będą Cię boleć. :D

    A tak poważnie - dziwne że piszesz że kliknąłeś pomógł, bo ani punktacja mi się nie zwiększyła ani nie dostałem maila z powiadomieniem... może kliknąłeś coś innego?

    && i || to podstawy języka c. &&znaczy tyle co "i" , a || znaczy "lub"
    czyli przykładowo if(x==5 || x==10){...}
    znaczy jeśli x jest=5 lub x=10 to zrób coś tam...
  • #5 6270763
    gbr3
    Poziom 15  
    Cytat:

    A tak poważnie - dziwne że piszesz że kliknąłeś pomógł, bo ani punktacja mi się nie zwiększyła ani nie dostałem maila z powiadomieniem... może kliknąłeś coś innego?

    Dziwne klikałem w pomógł ale faktycznie jak było tak jest 11...
    Dzięki za wyjaśnienie :D
    EDIT: teraz poszło :D
REKLAMA