Dyskusja schodzi z tematu więc założyłem nowy temat do wygadania się:
https://www.elektroda.pl/rtvforum/topic3214825.html
A teraz jeszcze na temat.
Zegar wskazuje czas prawidłowo ale nie przerzuca daty przy zmianie doby czyli po minięciu godz. 23:59:59
Funkcja Secofday() przybiera o godz. 00:00:00 wartość 0. Chciałem więc to wykorzystać do zwiększenia zmiennej _day lecz nic z tego. Można do niej przypisać jawnie jakąś wartość. Ale instrukcja if Secofday()=0 then ... nie działa.
Wartość bieżąca Secofday() wyświetla się prawidłowo na LCD lecz próba (dla testu) przypisania jej pod jakąś zmienną np. B nie udaje się
B = secofday()
na wyświetlaczu pojawiają się jakieś przypadkowe liczby. Delaracja B jako Long kompilator przyjmuje, natomiast gdy próbuje zadeklarować B jako String pisze że to niewłaściwy typ. Przy próbie instrukcji
B = Val(secofday())
też oczywiście błąd.
Zdurniałem już całkiem, nie wiem o co tu chodzi.
-----------------------
Wreszcie ten nieszczęsny zegarek chodzi. Oto cały kod.
Zaloguj się, aby zobaczyć kod
Dlaczego instrukcja
If Secofday() = 0 then ...
działa dopiero 1 minutę po północy chyba nie zostanie już rozszyfrowane. Chyba że ktoś jest bardzo uparty i znajdzie błąd w bibliotece a może gdzie indziej.
Na razie tak zostawiam bo działa.
Czy parametr
Compare1a = 43199 '1s @11MHz/256
nie ma mieć wartość 43200 bo 11059200/256=43200
--------------------------
Do niczego to wszystko.
Nie odróżnia długości miesięcy, liczy ciurkiem, z 31 przechodzi na 32 a nie na 01 itp.
Mam wersję Bascoma 1.11.9.5 spróbuję na nowej 2.0.7.5 może jest bardziej uniwersalna.
--------------------------
Wszystko w porządku. To nie wina kompilatora tylko kodu. Poprawiłem go i zmieniłem w okienku wyżej na prawidłowy. Chcę dorobić jeszcze zmianę czasu letni/zimowy tylko nie wiem czy teraz czy nieco później.
Dodałem zmianę czasu letni/zimowy. Poniżej pełny działający kod. Można go wykorzystać bezpośrednio, ale lepiej by było zrobić co nieco porządku ze zmiennymi bo powstało trochę bałaganu który żżera niepotrzebnie pamięć.
Zaloguj się, aby zobaczyć kod
Jeśli komuś nie odpowiada wyświetlanie dnia i miesiąca bez zer na początku to może skorzystać z instrukcji Date a nie z _day i _month.