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 8 kwi 2025, o 23:42


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
    Autor Wiadomość
    PostNapisane: 30 maja 2023, o 21:25 
    Offline
    Nowy

    Dołączył(a): 31 mar 2020
    Posty: 20
    Pomógł: 0

    Witam wszystkich.

    Od dłuższego czasu próbuję pozbyć się delayów z mojego przykładu, którego zadaniem jest pobranie ramki z licznika przez UART1 i wyświetlenie na terminalu przez UART0, wykorzystując bibliotekę MK_UART.
    Przykład generalnie działa, pod warunkiem że w funkcji, która wywołuję umieszczę _delay_ms();
    Wygląda to tak, jakby przerwanie niszczyło ramkę, która przychodzi, lub coś nie może zdążyć.
    Nie etapie mojego programowania nie parafię znaleźć rozwiązania.



    Problem obrazuje zdjęcie poniżej.
    Obrazek

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Będę wdzięczny za jakieś sugestie, pomoc.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 maja 2023, o 08:36 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27369
    Lokalizacja: Szczecin
    Pomógł: 1043

    Weź proszę zrób prosty program do testów tego twojego konkretnego przypadku zamiast wrzucać jakiś swój cały gigantyczny kod z dodatkowymi funkcjami itp itd - co one mają wspólnego z problemem. Żeby pomóc to trzeba najpierw dobrze wyizolować problem i go pokazać ok?

    Bo tak to można próbować po kolei wynajdować babole w programie a ty będziesz odpisywał że to nie to - bo poprawiłem i nadal nie działa ...

    a jednym z takich baboli jest chocziażby pętla for() w funkcji parsuj_uart1, skąd ty wiesz czy rzeczywiście w buforze jest w tym momencie 128 znaków że robisz iterację do 0-127 ??? to jest mega babol - podczas gdy masz w zmiennej size dokładny rozmiar ramki

    innym babolem którego na szybko widzę to jest użycie miliona timerów sprzętowych w programie głównym bez zastanowienia się czy przypadkiem biblioteka nie używa któregoś do obsługi transmisji binarnej - a jeśli tak a ty też go sobie konfigurujesz po swojemu no to już dochodzi "pełnia szczęścia" niestety.

    Dlatego powtarzam to co zawsze - wywal 80% swojego kodu - resztę przenieś do prostego projektu testowego i jest szansa że jak ci zadziała to sam szybko później na zasadzie porównań przy rozbudowywaniu go - że dojdziesz gdzie masz babola - a jeśli nie - to pokaż właśnie ten prosty kod testowy


    Autor postu otrzymał pochwałę

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 cze 2023, o 14:03 
    Offline
    Nowy

    Dołączył(a): 31 mar 2020
    Posty: 20
    Pomógł: 0

    Dziękuje Mirku za podpowiedz.
    Jak zawsze pełna profeska.

    Problemem był Timer, jak wspomniałeś w odpowiedz.



    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: 3 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO