Nieoczekiwane zatrzymanie funkcji - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Nieoczekiwane zatrzymanie funkcji (/watek-nieoczekiwane-zatrzymanie-funkcji) |
Nieoczekiwane zatrzymanie funkcji - laudes - 03-02-2017 Dotychczas programowałem w innych językach niż C, więc czegoś tu nie rozumiem. Jestem wewnątrz funkcji i mam taką sytuację: Kod: Serial.println("1"); Funkcja bool isTime() oczywiście zwraca true lub false, ALE powoduje to zatrzymanie funkcji, w której jej wynik jest sprawdzany. Skutkiem jest to, że dwójka nigdy się nie wyświetla. Dlaczego tak jest? RE: Nieoczekiwane zatrzymanie funkcji - namok - 03-02-2017 Pokaż cały program. RE: Nieoczekiwane zatrzymanie funkcji - laudes - 03-02-2017 (03-02-2017, 21:06)namok napisał(a): Pokaż cały program. Kod: int alarmDaysActive[] = {1, 2, 3, 4, 5}; pominąłem kilka nieistotnych rzeczy, bo kod jest długi i zawiły. w każdym razie wiem już, że przyczyną takiego stanu jest kod wewnątrz funkcji isAlarmTime(). jeśli zamiast niego dam return, to działa wszystko poprawnie. RE: Nieoczekiwane zatrzymanie funkcji - namok - 03-02-2017 Sprawdź na symulatorze: https://www.sites.google.com/site/unoardusim/services RE: Nieoczekiwane zatrzymanie funkcji - laudes - 03-02-2017 (03-02-2017, 21:33)namok napisał(a): Sprawdź na symulatorze: https://www.sites.google.com/site/unoardusim/services Już wiem gdzie jest błąd - return true wewnątrz pętli for. Z jakiegoś powodu powodowało to, że pętla wykonywała się w nieskończoność O_o RE: Nieoczekiwane zatrzymanie funkcji - namok - 03-02-2017 (03-02-2017, 21:35)laudes napisał(a):(03-02-2017, 21:33)namok napisał(a): Sprawdź na symulatorze: https://www.sites.google.com/site/unoardusim/services I od takich przypadków jest symulator. Dodaj też nawiasy bo z nawiasami jest tak że lepiej dać więcej niż mniej Kod PHP: if( ( (alarmHourFrom[0]*60+alarmHourFrom[1]) >= timeInMinutes ) Jesli fukcja zwraca bool to wystarczy: Kod PHP: if(isAlarmTime()) { |