kowalkowskiadam Napisano Październik 26, 2020 Udostępnij Napisano Październik 26, 2020 stoper start/stop/reset gdy resetuje pokazuje się 00:00:000 ale zapętliło mi się chyba timeNprint() bo czas leci cały czas od początku 1 kliknięcia .. pomoccyy tak wygląda kod #include<LiquidCrystal.h> LiquidCrystal lcd(12,11,7,6,5,4); unsigned long start, finished, elapsed; int ss1 = 0, ss2 = 0; int pss1 = 0; int h =0, m =0, s =0, ms=0; int h2 =0, m2 =0, s2 =0, ms2=0; long interval = 100; unsigned long last=0,dur,pre=0,last2=0,dur2,over; int num_rise=0; bool reset=0,row=0; unsigned long curr; void timeNprint(){ curr = millis(); elapsed = curr - start; h =(elapsed / 3600000); over = elapsed % 3600000; m =(over / 60000); over = over % 60000; s =(over / 1000); ms = over % 1000; // rezultat lcd.setCursor(0,0); if (m<10) lcd.print("0"); lcd.print(m); lcd.print(":"); if (s<10) lcd.print("0"); lcd.print(s); lcd.print(":"); lcd.print(ms); } void printTime(){ lcd.setCursor(0,2); row=!row; if (m<10) lcd.print("0"); lcd.print(m); lcd.print(":"); if (s<10) lcd.print("0"); lcd.print(s); lcd.print(":"); lcd.print(ms); } void resetNwelcome(){ m=0;s=0;ms=0; lcd.setCursor(0,1); lcd.print("Kliknij START!"); lcd.setCursor(0,0); lcd.print("00:00:000"); } void setup() { lcd.begin(16,2); pinMode(2,INPUT); pinMode(3,INPUT); } void loop() { num_rise=0; resetNwelcome(); ss1=digitalRead(2); if (ss1 == HIGH) //start { num_rise++; last=millis(); lcd.clear(); while(1) { switch(num_rise%2) { case 0: //pause ss2=digitalRead(3); ss1=digitalRead(2); dur=millis()-last; if (ss2==HIGH) {reset=1;break;} else if(ss1==HIGH && dur>300) { num_rise++; last=millis();} break; case 1: timeNprint(); ss1=digitalRead(2);dur=millis()-last; if (ss1==HIGH &&dur>300) { num_rise++; last=millis(); } break; } ss2=digitalRead(3); dur2=millis()-last2; if(ss2==1 && dur2>300) { last2=millis(); printTime(); } if(reset==1) {resetNwelcome(); reset=0;lcd.clear();row=0;break;} } } } Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Październik 27, 2020 Udostępnij Październik 27, 2020 @kowalkowskiadam witam na forum 🙂 Bardzo ciężko analizować taki kod, bo formatowanie trochę kuleje, komentarze również ubogie, ale zacznijmy od początku. Czym jest zmienna start? Nie mogę zrozumieć jaki jest jej cel. Korzystasz z niej tylko w funkcji timeNprint, a jaka jest wartość tej zmiennej? Link do komentarza Share on other sites More sharing options...
kowalkowskiadam Październik 27, 2020 Autor tematu Udostępnij Październik 27, 2020 haha! siedziałem nad tym chyba z 5 godzin ... wszystko jasne: ) nie dałem w loopie startu : ) Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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ę »