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 00:58


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
    Autor Wiadomość
    PostNapisane: 14 paź 2021, o 18:34 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2021
    Posty: 93
    Pomógł: 0

    Hej, wlasnie jestem przy uart i buforze cyklicznym. Mam kod z książki do odbierania i wysylania danych. Tylko mam problem jak obsłużyć odbieranie danych. Przy wysylaniu korzystam z funkcji uart_putc lub puts, tylko jak z odbiorem? Gdy zdefiniuje sobie zmienna na te dane i zrobie data = uart_getc();
    no to żaden warunek nie jest spełniony, nic sie nie dzieje. Gdy robię tak:
    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.


    program dziwnie się zachowuje.Delaya dalem, żeby to lepiej zobaczyć. Gdy kliknę '1' to zapali sie dioda na PB0, gdy klikne '2' to zgasnie PB0, zapali się PB1, ale ona za chwile zgaśnie i zapali się znow PB0. Dopiero gdy drugi raz kliknę '2' to zapali się na stałe PB1, a PB0 zgasnie. Żeby to działało, muszę przytrzymać trochę klawisz na klawiaturze. Pewnie czegoś tu nie do konca zrozumiałem i stąd moje problemy.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 paź 2021, o 18:50 
    Offline
    Użytkownik

    Dołączył(a): 05 sty 2015
    Posty: 393
    Lokalizacja: Mielec
    Pomógł: 14

    Hej,
    Dzieje się tak dlatego że nie zagladnoles do biblioteki i do funkcji odbioru danych,

    Gdy bufor jest pusty to funkcja zwraca znak że jest pusty bufor. Zagladnij jaki to znak do funkcji i go wyklucz, a delay'a wyrzuć.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 paź 2021, o 19:04 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2021
    Posty: 93
    Pomógł: 0

    Do biblioteki zaglądałem, w funkcji odbioru jesli Head == tail to funkcja zwraca 0, zadnego innego znaku nie widze, zeby zwracala inny znak. Nawet gdy zakomentuje tą linijke to jest to samo.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 paź 2021, o 19:05 
    Offline
    Moderator
    Avatar użytkownika

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

    W Bluebooku skupiłem się przede wszystkim na wyjaśnieniu tak podstawowych mechanizmów jak buforowanie cykliczne i przerwania uart a także wysyłanie danych. Żeby dobrze organizować odbiór przydają się kolejne i ciut bardziej zaawansowane mechanizmy jak callbacki - a to już szeroko poruszam w drugiej książce czyli w Greenbooku i tam właśnie jest bardzo dokładnie to opisane i nawet biblioteka która pięknie pozwala odbierać stringi w oparciu o callbacki.

    _________________
    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: 14 paź 2021, o 19:07 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 lis 2019
    Posty: 145
    Pomógł: 37

    Jeśli w użyciu jest bufor cykliczny to nie możesz czytać bezpośrednio z UDR. Dane odczytujesz z uart_getc. Oczywiście gdy wołasz tę funkcję gdy ring buffer jest pusty to zwrotnie otrzymujesz kod braku danych. Wtedy tę "daną" ignorujesz. A więc
    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.

    _________________
    Think for yourself and question authority.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 paź 2021, o 19:10 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2021
    Posty: 93
    Pomógł: 0

    Eh, szkoda bo samo wysylanie danych to żadna frajda :D Ew to jakiegoś debugowania. Miałem małą wizje, że mogę za pomocą terminala sterować pracą urządzenia wysyłając odpowiednie znaki itp. Cóż, trzeba lecieć z rozdziałami do przodu

    ------------------------ [ Dodano po: 3 minutach ]

    No początkowo tak myślałem właśnie, bo było to dla mnie nielogiczne żeby z UDR0 czytać, jak jest funkcja ale gdy zrobię tak :
    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.

    No to brak reakcji ze strony LED. Nie bardzo skumałem fofex o co chodzi z tym brakiem danych



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 paź 2021, o 19:39 
    Offline
    Moderator
    Avatar użytkownika

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

    Ale spokojnie i z tym co jest w BB też można zrobić odbiór tylko no siłą rzeczy bez callbacka trzeba więcej pokombinować i za każdym razem za każdym projektem rzeźbić sobie coś na daną potrzebę.

    Wystarczy właśnie cały czas badać czy przyleciał ci NIE PUSTY znak ;) i odbierać do własnego buforka znaki które przylecą, reagować na enter na końcu linii itp - w czym problem ? ;)

    _________________
    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: 14 paź 2021, o 19:42 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2021
    Posty: 93
    Pomógł: 0

    Problem w tym że nie bardzo wiem jak to zorganizować w kodzie. Ok spróbuję sobie coś wykombinować



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 paź 2021, o 21:05 
    Offline
    Moderator
    Avatar użytkownika

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

    podpowiem, że już w dawnych czasach tu na forum pojawiały się dokładnie wręcz identyczne problemy ale też ludzie pokazywali po kilku postach jak doszli do rozwiązania. Tylko trzeba byłoby spróbować poszukać na forum. Mi na szybko nie udaje się teraz odszukać tych co najmniej kilku wątków - wręcz identycznych. Ale jakbym wpadł to dam znać.

    _________________
    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: 9 sty 2022, o 18:20 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2021
    Posty: 93
    Pomógł: 0

    Witam, chciałbym odświeżyć wątek ponieważ walczę z rozdziałami w BB, które mi sprawiały problemy, żeby przejść już do GB. Jeszcze raz wałkuje bufor cykliczny i myślę, że zasadę, jak te indeksy się przesuwają, maskowanie, mechanizm zapętlenia rozumiem. Próbuje ponownie podejść do tematu odbioru w najprostszej postaci tj pojedynczego znaku i ustawić w programie jakąś reakcje na to np: wyświetlenie tego na LCD. Analizowałem posty powyżej, próbowałem zareagować na to, kiedy funkcja zwraca 0, w momencie gdy oba indeksy są równe. Męczę się z tym już kilka godz i nie wiem gdzie popełniam błąd.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Samo przerwanie się wykonuje, chociaż na początku zapomniałem go włączyć. Używam atm328p.
    Kod,który próbuje wykorzystać ponizej:
    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.

    Nie mam niestety żadnej reakcji na LCD. Prosiłbym o naprowadzenie troszkę. Wiem, że kilka osób wcześniej się wypowiadało, jednak no dalej nie mogę tego ogarnąć.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 sty 2022, o 18:30 
    Offline
    Moderator
    Avatar użytkownika

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

    a kod bufora cyklicznego i przerwania - sam sobie pisałeś? czy działasz na przykładzie z książki - bo tak to nie wiadomo co tam masz

    _________________
    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: 9 sty 2022, o 18:31 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2021
    Posty: 93
    Pomógł: 0

    Oczywiście kod mam z bluebooka, jeśli Pan chcę, mogę podesłać na priv oba pliki.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 sty 2022, o 18:32 
    Offline
    Moderator
    Avatar użytkownika

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

    nie nie - nic proszę nie przesyłać - przecież kto jak kto ale ja mam te kody ;) tylko ty nie napisałeś z której lekcji

    _________________
    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: 9 sty 2022, o 18:40 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2021
    Posty: 93
    Pomógł: 0

    Chodzi o lekcje buforowanie cykliczne, prosty odbiór danych.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 sty 2022, o 20:17 
    Offline
    Moderator
    Avatar użytkownika

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

    Panie kochany do książki są kody źródłowe - lekcje ponumerowane to o to pytam a nie czy np coś przepisałeś z książki.

    _________________
    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: 9 sty 2022, o 20:24 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2021
    Posty: 93
    Pomógł: 0

    No dobrze, czy ma Pan już wszystkie informacje, by ew udzielić jakieś porady? Bo już sam nie wiem co mam jeszcze napisać. Kod dosłownie skopiowałem z plików do BB. Dodatkowo musiałem w inicjalizacje dorzucić włączenie przerwania RX. I nic więcej nie robiłem. Jedyny problem to podejscie jak odebrać znak z terminala. Wrzuciłem kod kilka postów wyżej, który nie działa i zachodzę w głowę czemu. Chciałbym, aby ktoś naprowadzil dlaczego, gdzie mój błąd w rozumowaniu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 sty 2022, o 11:13 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2021
    Posty: 93
    Pomógł: 0

    Podbijam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 sty 2022, o 14:14 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2021
    Posty: 93
    Pomógł: 0

    Poradziłem sobie także temat do zamknięcia. Tak w roli ścisłości chodziło o lekcje nr 7 UART z Bluebooka. Nie ogarnąłem z początku o jaki numer lekcji chodzi.



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

    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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO