Aktywne Wpisy

Anoncio2111 +106
Witajcie Miraski, chciałem się Wam pochwalić zdjęciem Saturna, które zrobiłem dosłownie kilkanaście minut temu zestawem teleskop (zwierciadło 8 cal)+ lustrzanka. Efekt taki sobie, ale i tak jestem mega zadowolony ᕙ(✿ ͟ʖ✿)ᕗ
#astronomia #astrofotografia #kosmos #nauka #fotografia
#astronomia #astrofotografia #kosmos #nauka #fotografia
źródło: IMG_2472
Pobierz
WykopX +7





if (key){
switch (key){
case 'A': //+15 min
timer = timer +(15*60);
break;
case 'B': //-7 min
timer = timer -(7*60);
if (timer < 0) {timer = 0;}
break;
case '3': //start timera
break;
case 'C': //zmiana biegu
if (bieg == 1) {bieg = 0;}
else {bieg = 1;}
break;
case 'D':
if (cykleAktywne == 1) {cykleAktywne = 0;}
else {cykleAktywne = 1;}
dataZmien();
break;
default:
break;
}
}
#arduino #programowanie
Pytasz o funkcję dataZmien() której ciało znajduje się w innym miejscu.
Pytasz o obsługę klawiatury, które to procedury znajduję się w innym miejscu.
Problem twój polega na tym, że nie potrafisz nawet zilustrować pytania właściwym fragmentem kodu(o sam kod pokazany tutaj już nie będę się czepiał).
Obsługa klawiatury dziala i leci na standardowej bibliotece.
No i moze tak jak koledzy pisza zapodaj caly kod albo conajmniej to datazmien bo na 100% problem jest tam.
NIE
czyli "A", jak sama nazwa wskazuje "case 'A': //+15 min" dodaje 26 minut do timera, "B", "case 'B': //-7 min" odejmuje od timera ok. 12.5 minuty (jak sama nazwa wskazuje), "3" startuje timer (czyli nie robi nic). Działają jak działały, czyli nie tak jak powinny.
Zmienne boolean (sądząc po wartościach) "bieg" i "cykleAktywne" są negowane warunkiem, zamiast po prostu "bieg=!bieg".
Tyle podpowiedziała mi szklana kula na podstawie losowego fragmentu kodu (a nie
sprintf(str, "%02ld:%02d:%02d", h, m, s);
Ta linijka siedzi w innej funkcji, do której datazmien się nie odwołuje. Jeszcze nie ogarnąłem całkiem o co chodzi, szczególnie, że mało wiem o sprintf. Jak je przytnę do
sprintf(str, "%02d:%02d", h, m);
to działa. Jak zrobię
sprintf(str, "%02:%02d:%02d", h,
lcd.print(str);
lcd.println("A+15,B-7,3=RUN");
Nie wiem jak ten ekranik dokladnie dziala i nie mam czasu sie w to zaglebiac ale jesli dobrze rozumiem opis tych funkcji to "print" nie przechodzi do nastepnej linijki. Wiec najprawdopodobniej lcd.println zwraca ci out of
Jak dam w pierwszej linii lcd.println czyli
lcd.println(str);
lcd.println("A+15,B-7,3=RUN");
to mimo, że znaków jest dokładnie tyle co miejsce w linijce to wstawia pustą linię. W tej bibliotece tak jest zawsze jak jest tyle znaków co miejsc w linii. Do tego jeśli linia jest za długa to po prostu kontynuuje w drugiej i nie wyrzuca żadnego błędu. Na razie sformatowałem to ręcznie i działa.
if (h <