DS1307 Edycja zmiennych czasu - 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: DS1307 Edycja zmiennych czasu (/watek-ds1307-edycja-zmiennych-czasu) |
DS1307 Edycja zmiennych czasu - rykool - 06-01-2016 Witam, mam raczej banalny problem ale mi sprawia kłopot, a mianowicie: Chciałbym zmieniać zmienne zegara przez naciśnięcie przycisku, obecnie gdy robię to w poniższy sposób if (digitalRead(8) == LOW) {dt.minute ++, delay(100);} zegar się zawiesza. Czy zmienne zegara należy traktować jakoś inaczej? Poniższy kod dla lepszej czytelności ograniczyłem tylko do edycji minut Kod: #include <DS1307.h> Z góry dziękuję za pomoc i przepraszam za zaniżanie poziomu RE: DS1307 Edycja zmiennych czasu - v-cu - 06-01-2016 Ogólnie polecam DS3231 jest 100razy dokładniejszy. Może spróbuj przypisać ten czas do zmiennej i potem tą zmienną regulować. Kod: int minuty = dt.minute; RE: DS1307 Edycja zmiennych czasu - rykool - 06-01-2016 1. No niestety ten sposób nie pomaga 2. Prawdę mówiąc nie zależy mi na super dokładności ponieważ ma to być zegar sterownika nie wymagający super dokładności, ale dzięki za podpowiedź RE: DS1307 Edycja zmiennych czasu - wojtekizk - 14-01-2016 (06-01-2016, 11:34)rykool napisał(a): Witam, mam raczej banalny problem ale mi sprawia kłopot, a mianowicie: Witam A czy przypadkiem nie masz błędu przy kompilacji, bo chyba zamiast przecinka powinien być średnik po dt.minute++ Pozdrawiam RE: DS1307 Edycja zmiennych czasu - rykool - 18-01-2016 (14-01-2016, 22:27)wojtekizk napisał(a):(06-01-2016, 11:34)rykool napisał(a): Witam, mam raczej banalny problem ale mi sprawia kłopot, a mianowicie: RE: DS1307 Edycja zmiennych czasu - rykool - 18-01-2016 Nie, wszystko kompiluje się poprawnie. Gdzieś wyczytałem, że przed edycją zmiennych czasu powinno się zatrzymać zegar przez clock.stop() i co ciekawe komendy tej nie mogę użyć bo wyskakuje błąd, ale skoro jest i działa komenda clock.begin() to czemu nie mogę zatrzymać zegara ? RE: DS1307 Edycja zmiennych czasu - wojtekizk - 18-01-2016 To że kompiluje się poprawnie jest zrozumiałe. Zacytuję Ci fragment książki Jerzego Grebosza "Symfonia C++" : Cytat:Jeśli kilka wyrażeń stoi obok siebie oddzielone przecinkiem, to ta całość, jest także... a w Twoim kodzie: w tej linii z przecinkiem funkcja if wykona tylko delay... zatem kod się zawiesi, bo będzie ciągle delay. Kompilator nie zgłosi błędu bo to nie jest błąd składniowy tylko logiczny :-) Musisz zamienić przecinek na średnik i wtedy testować. Pozdrawiam ps. "Najważniejsze jest niewidoczne dla oczu". (Mały Książę - Antoin'e de Saint-Exupery). Ta symfonia to biblia języka C++ - ma już chyba z 10 wydanie i wciąż bije rekordy popularności, mimo że raczej trzeba PRZYNAJMNIEJ przeczytać z uwagą wszystkie 3 tomy. :-) ...i jeszcze uwaga z ost. chwili - proszę sprawdźcie to Ci, którzy to czytacie... Bo grubo wydaję mi się, że inne kompilatory C++ np. ten Borlanda też nie wywala błędu przy takiej konstrukcji z przecinkiem, ale mamy tam przynajmniej warning - ostrzeżenie. Czy w opcjach IDE Arduino da się ustawić pokazywanie wszystkich warningów? RE: DS1307 Edycja zmiennych czasu - rykool - 18-01-2016 Pomogło wreszcie się z tym uporałem - dziękuje za pomoc |