15-03-2018, 20:37
Dla czego musisz wywoływać cośtam?
Tworzysz sobie taki obiekt z obiektu, który dla niepoznaki nazywa się w języku noobów inicjalizacją.
tmElements_t, jest już obiektem typu zdefiniowanego struktury anonimowej:
typedef struct {
uint8_t Second;
uint8_t Minute;
uint8_t Hour;
uint8_t Wday;
uint8_t Day;
uint8_t Month;
uint8_t Year;
} tmElements_t, TimeElements, *tmElementsPtr_t;
Struktury anonimowe, to taki wymysł GCC, który normalnie nie powinien istnieć, bo według mnie właśnie są z nim takie problemy, jak powyższy.
Nie możesz zadeklarować obiektu tm poza funkcją go używającą.
tm pobiera z zegara zmienną czasu i rozkłada ją na składowe, przypisując do zmiennych wewnątrz struktury, a potem sobie pobierasz tm.Minute,
tm.Second
Można oczywiście kombinować.
Ja bym pogrzebał w pliku TimeLib.h i zrobił z tego normalną strukturę albo klasę.
Wywołanie obiektu pobierało by aktualny czas, bo teraz linijka tmElements_t tm przypisuje czas do tm i czas się nie zmienia aż do następnej "inicjalizacji" zegara, czy tam obiektu go obsługującego.
A co się tyczy kodu, to deklarujesz sobie znak stopni Celsiusza, a biblioteka U8Glib ma sporo znaków specjalnych.
Więc zamiast tej bitmapy piszesz "\xb0".
Na stronie https://github.com/olikraus/u8glib/wiki/...upadobex11 masz tablice znaków.
Jak byś miał problem z ich użyciem, to mogę wyjaśnić.
Tworzysz sobie taki obiekt z obiektu, który dla niepoznaki nazywa się w języku noobów inicjalizacją.
tmElements_t, jest już obiektem typu zdefiniowanego struktury anonimowej:
typedef struct {
uint8_t Second;
uint8_t Minute;
uint8_t Hour;
uint8_t Wday;
uint8_t Day;
uint8_t Month;
uint8_t Year;
} tmElements_t, TimeElements, *tmElementsPtr_t;
Struktury anonimowe, to taki wymysł GCC, który normalnie nie powinien istnieć, bo według mnie właśnie są z nim takie problemy, jak powyższy.
Nie możesz zadeklarować obiektu tm poza funkcją go używającą.
tm pobiera z zegara zmienną czasu i rozkłada ją na składowe, przypisując do zmiennych wewnątrz struktury, a potem sobie pobierasz tm.Minute,
tm.Second
Można oczywiście kombinować.
Ja bym pogrzebał w pliku TimeLib.h i zrobił z tego normalną strukturę albo klasę.
Wywołanie obiektu pobierało by aktualny czas, bo teraz linijka tmElements_t tm przypisuje czas do tm i czas się nie zmienia aż do następnej "inicjalizacji" zegara, czy tam obiektu go obsługującego.
A co się tyczy kodu, to deklarujesz sobie znak stopni Celsiusza, a biblioteka U8Glib ma sporo znaków specjalnych.
Więc zamiast tej bitmapy piszesz "\xb0".
Na stronie https://github.com/olikraus/u8glib/wiki/...upadobex11 masz tablice znaków.
Jak byś miał problem z ich użyciem, to mogę wyjaśnić.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.