Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 5 maja 2025, o 02:55


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
    Autor Wiadomość
    PostNapisane: 23 lis 2021, o 10:31 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 20 paź 2013
    Posty: 143
    Lokalizacja: Zamość
    Pomógł: 0

    Witam.

    W internecie krąży mnóstwo poradników jak obsługiwać przerwania od stanu idle na linii UART w STM-ach. Jest to super rozwiązanie w przypadku gdy nie wiemy ile znaków przychodzi od urzaądzenia do uC (np. obsługa modemów poprzez komendy AT).

    tu np. po polsku: https://msalamon.pl/dostalismy-swietna- ... le-w-halu/
    tu np. po angielsku: https://controllerstech.com/uart-dma-wi ... detection/
    filmik (streszczenie) na YT do wersji angielskiej: https://www.youtube.com/watch?v=Bo6MC5A8uTE&t=397s

    Wszyscy definiują bufor do odebrania danych (który jest wypełniany danymi w przerwaniu) jako uint8_t pomijając volatile.
    Czy wszyscy się mylą czy w tym przypadku bufor nie musi być volatile?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lis 2021, o 12:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2017
    Posty: 368
    Lokalizacja: Gliwice
    Pomógł: 34

    Wg mnie nie jest wcale potrzebne volatile przy buforze, bo niby dlaczego?
    Dodajemy ten operator po to żeby na zmiennej nie dochodziło do optymalizacji. Kompilator wie, że nie należy "ruszać" takiej zmiennej.
    Taki bufor to zawsze jest tablica w pamięci, najczęściej globalna i zarazem statyczna, a wskaźnik na bufor jest również formalnie typu "const" i w trakcie działania programu nie podlega żadnym zmianom, a kompilator i tak nie będzie "ruszał" takiego bloku pamięci.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO