Skocz do zawartości

Funkcja milis


SebaSaper

Pomocna odpowiedź

Witam zwracam się z proźbą to bardziej zaawansowanych w programowaniu Arduino, mugl by mi ktoś wytłumaczyć jak za pomocą funkcji milis zmierzyć czas i wyświetlić na LCD  .

Zbudowałem w oparciu o Arduino tester ogniw li-ion i nie wiem za bardzo jak za pomocą tej funkcji zmierzyć czas od rozpoczęcia testu (włączenia tranzystora)  do momętu gdzie tester wyłącza tranzystor  max czas testu to 3h .

Chciał bym aby czas był wyświetlany na bieżaco (sek.min.h)  i aktualizowany co sekundę, za każdą poradę będę wdzieczny.

Z góry dziękuję.

Edytowano przez SebaSaper
Link do komentarza
Share on other sites

unsigned long momentOfBegining = 0;

void loop(){
  if(jakis warunek rozpoczynajacy prace){
    momentOfBegining = millis();
  }
  if(!momentOfBegining && millis() - momentOfBegining >= 1000){
    momentOfBegining = millis();
    odswiezLCD();
  }
}

 

Edytowano przez rziomber
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Pytanie może ma niskim poziomie ale,czy w tym kodzie jest zawarta procedura w kturej jeśli warunek nie jest spełniony czas przestaje być odliczany i jest tylko wyświetlany , jeśli mugl byś to wklej mi część kodu która by za to odpowiadała bo chciał bym zrozumieć jak to działa a nie tylko kopiuj wklej

Link do komentarza
Share on other sites

@rziomber - kolega przed chwilą wyjaśnił że chyba nie wie co zrobić w funkcji odswiezLCD() 😉

Na takie wyświetlanie jest sposobów mnóstwo i każdy będzie chwalił swój, zaczniemy więc od jednego:
 

int sekundy = millisekundy / 1000; // wiadomo czemu
int minuty = sekundy / 60;  // chyba też wiadomo czemu
sekundy = sekundy % 60; // czyli reszta z pełnych minut
int godziny = minuty / 60; // jak wyżej
minuty = minuty % 60;

Czy potrafisz wyświetlić czas mając już obliczone godzin, minuty i sekundy?

Tak przy okazji: ponieważ mamy być grzeczni i zachowywać się zgodnie z Polityką Przyjaznego Forum miło by było, aby ktoś zgłaszający się pierwszy raz z pytaniem również zgodnie z ową polityką się zachował i raczył napisać parę słów o sobie, bo nie wiadomo jak mamy odpowiedzieć. Inaczej odpowiem programiście PHP z paroletnim stażem, który postanowił zabrać się za Arduino a inaczej komuś, kto nie bardzo wie z której strony toto się włącza. Więc jak będzie?

po edycji

W pierwszym poście nic nie wspominałeś o przerwaniu odliczania, może więc uściślij swoje wymagania. Najpierw chcesz porad, teraz kodu, za chwilę będzie gotowiec?

Edytowano przez ethanak
Link do komentarza
Share on other sites

(edytowany)

Przepraszam 

Mam na imię Sebastian mam 22lata  Arduino mam doczynienia około 6miesięcy podstawy ogarniam , jedynie funkcją milis to dla mnie czarna magia bo nie korzystałem z niej jeszcze .

Teraz już wiem jak się za to zabrać i dziękuję za wyrozumiałość 🙂

Jeśli mugl byś podać jakiś przykład jak to wyświetlić to by było super.

Edytowano przez SebaSaper
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.