(25-11-2019, 12:06)Krzaczek napisał(a): Jeżeli chodzi o aplikację to wszystko działa dobrze. Problem mam tylko z tym manualnym włączeniem i wyłączeniem.Źle rozwiązałeś porównywanie czasu włączenia i wyłączenia o zadanym czasie. Używasz ">" i "<" a to rodzi problemy. Powinno być "==" ale jak loop wykonuje się długo to będą problemy. Najlepiej obsługiwać RTC na przerwaniu, wtedy warunek "==" na pewno kiedyś wsie wykona (nie będzie pominięty) i co ważne, wykona się raz (zakładam przerwania RTC co sekundę). To rozwiązanie jest najlepsze.
Inna opcja to np porównywać przez > i < oraz ustawianie flagi aby porównanie wykonało się raz, tyle, że to komplikuje kod.
Zmiana PWM dla ściemniania i rozjaśniania też powinna być zrealizowana na przerwaniach. W tym wypadku wystarczy przerwanie 1ms. Można skorzystać z przerwania "systemowego" od T0 (nie napisałeś co to za Arduino, zakładam, że na AVR).
Zrób RTC na przerwaniach, problemy znikną a kod będzie prostszy. Manualne załączenie lampki to ustawienie/skasowanie flagi, która w przerwaniu 1ms rozjaśni/ściemni oświetlenie. Tak samo porównanie RTC operuje na fladze. Prosto i skutecznie.