ATNEL tech-forum
https://forum.atnel.pl/

Bibloteka MK_Multi_Uart 20 nie moge pozbyć się _delay_ms
https://forum.atnel.pl/topic24490.html
Strona 1 z 1

Autor:  marker82 [ 30 maja 2023, o 21:25 ]
Tytuł:  Bibloteka MK_Multi_Uart 20 nie moge pozbyć się _delay_ms

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 ]
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.

Autor:  mirekk36 [ 31 maja 2023, o 08:36 ]
Tytuł:  Re: Bibloteka MK_Multi_Uart 20 nie moge pozbyć się _delay_ms

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:  marker82 [ 2 cze 2023, o 14:03 ]
Tytuł:  Re: Bibloteka MK_Multi_Uart 20 nie moge pozbyć się _delay_ms

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

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

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/