-
Data: 2022-11-13 10:10:37
Temat: time.h na STM32 i strefy czasowe
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Kontynuuję przenoszenie na FreeRTOS projektu mojego radia internetowego
na STM32F107. Na chwilę obecną urządzenie zaczęło działać jak powinno, a
co najważniejsze - działa stabilnie. Przy okazji uruchomiłem jeszcze
klienta SNTP do synchronizacji RTC wbudowanego w mikrokontroler.
Generalnie jeśli któryś z moich projektów posiada połączenie z siecią
(albo inną formę łączności ze światem zewnętrznym) staram się, żeby
pobierał z niej aktualny czas, a w przypadku posiadania wyświetlacza
posiadał także funkcję zegara.
Tutaj zawsze pojawia się kwestia obsługi stref czasowych i czasu
letniego/zimowego. Pamiętam, że w czasach AVR-ów musiałem to wszystko
robić ręcznie. Odpowiednia funkcja sprawdzała czy w danym momencie
powinienem dodać godzinę czy dwie, a potem odpowiednią wartość w
sekundach dodawałem do timestampu (time_t) aby finalnie przekonwertować
do struct tm i wyświetlić.
Trochę lepiej było to zaimplementowane w PIC32 - tam miałem zmienne
globalne, w których mogłem ustawić różnicę w stosunku do UTC oraz chyba
włączać automatyczne ustawianie czasu zimowego. Dzięki temu mogłem
korzystać z funkcji localtime() z time.h.
Jeszcze lepiej było to zrobione w RTOS SDK z ESP8266/ESP32, gdzie po
prostu wystarczyło ustawić odpowiednią zmienną środowiskową i to
własciwie załatwiało sprawę - biblioteka time.h stawała się świadoma
strefy czasowej:
setenv("TZ", "GMT-1GMT-2,M3.5.0/2,M10.5.0/3", 1);
tzset();
Jak to się robi w STM32, korzystając z GCC i STM32CubeIDE? Muszę wrócić
do rozwiązania z AVR-ów, czy istnieje jakieś bardziej eleganckie
rozwiązanie?
Kolejna sprawa: komuś udało się uruchomić serwer HTTP dołączony do lwIP,
korzystając z FreeRTOS?
Następne wpisy z tego wątku
- 15.11.22 20:31 Grzegorz Niemirowski
- 15.11.22 21:56 Atlantis
- 16.11.22 00:52 Grzegorz Niemirowski
Najnowsze wątki z tej grupy
- supercap
- Procesor NMOS i karta CF
- Jak sprawdzic uC
- radyjko znalazłem
- Telewizor przestał widzieć sygnał z anteny
- LED
- System operacyjny dla 6800?
- Przyłączenie działki do sieci elektrycznej
- Działalność nierejestrowana/definicja sprzętu elektronicznego/misie i kolejki
- Smukły, długi ściągacz izolacji do kynaru
- rezystor 3 omy 400W
- [newbie] Jaki multimetr za 2-4 stówy?
- szafka sieciowa
- Raspberry Pi 5 + dyski SATA
- lutownica na węgiel
Najnowsze wątki
- 2024-05-26 O co chodzi?
- 2024-05-26 PJ autobus-tramwaj
- 2024-05-26 Renault Trafic i lampka z czerwonym STOP
- 2024-05-26 cena pięciocyfrowa
- 2024-05-26 Re: Jak dobra KE "okrada" złą Rosję "dla Ukrainy"
- 2024-05-25 supercap
- 2024-05-25 Sulzbach => Technischer Rollouter (d/m/w) <=
- 2024-05-25 Warszawa => Senior Account Manager <=
- 2024-05-25 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-25 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-25 Warszawa => Interactive/Experience Designer <=
- 2024-05-25 Warszawa => Key Account Manager <=
- 2024-05-25 Warszawa => SAP WM Consultant / Execution <=
- 2024-05-25 Warszawa => Key Account Manager <=
- 2024-05-25 Re: znów ten wrocław