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 18 kwi 2025, o 13:43


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
    Autor Wiadomość
    PostNapisane: 20 maja 2021, o 15:16 
    Offline
    Nowy

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

    Witam Wszystkich.

    Chciałbym uzyskać pomoc jak rozwiązać mój problem.

    W trakcie zabawy z biblioteką UART Mirka, natknąłem się na dwa pytania początkującego.

    1. Jak przekazać bufor do funkcji?
    2. Jak przepisać bufor do innej zmiennej i ją wyświetlić, wysłać?

    W programie mam 2 funkcję, parsuj_uart i send, jeśli wysyłam bufor z funkcji parsuj_uart to wszystko działa, problem powstaję gdy chcę ten bufor wysłać z funkcji send.

    Proszę o pomoc w rozwiązaniu problemu.

    Poniżej fragment programu

    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 maja 2021, o 15:38 
    Offline
    Użytkownik

    Dołączył(a): 26 mar 2014
    Posty: 34
    Pomógł: 11

    W przypadku parsuj_uart buf jest zmienną lokalną (argument funkcji) wskazującą na bufor uart_rxbuf, który zawiera odebrane przez UART dane i uart_puts wysyła je spoworotem na terminal. W przypadku send, buf jest jakąś zmienna globalną, którą ucięło w pokazanym kodzie??? Jeśli jest to char buf[10]; i jest to zmienna globalna to buf będzie zainicjalizowany samymi zerami, przez co uart_puts nic nie wyśle, bo nie ma co wysłać.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 maja 2021, o 16:15 
    Offline
    Nowy

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

    W funkcji send nie jest zadeklarowana żadna zmienna.
    Chce użyć zmiennej buf która jest wykorzystana w funkcji parsuj_uart



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 maja 2021, o 16:56 
    Offline
    Moderator
    Avatar użytkownika

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

    marker82 napisał(a):
    problem powstaję gdy chcę ten bufor wysłać z funkcji send.

    No a gdzie ty masz kod tej funkcji send()? przecież pokazałeś tylko jej nagłówek - więc ciężko się domyśleć co ty chcesz tam w niej zrobić.

    Postaraj się dobrze opisać problem i skoncentrować tylko na jednym pytaniu zagadnieniu opisując problem, i tylko odnośnie tego problemu pokaż swoje fragmenty kodu - wtedy będzie można tobie łatwo i szybko pomóc ....

    A kopiowanie buforów można w C robić na milard sposobów, tylko czasem warto wybrać ten najkorzystniejszy do swoich rozwiązań ... więc jak mówię - opisz nieco lepiej problem dobrze ?

    _________________
    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: 20 maja 2021, o 17:05 
    Offline
    Nowy

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

    na dole kodu

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


    W moim przykładzie chcę pobrać bufor (buf) z funkcji parsuj_uart(), przekazać ją do funkcji send() i wysłać uartem.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 maja 2021, o 18:45 
    Offline
    Użytkownik

    Dołączył(a): 26 mar 2014
    Posty: 34
    Pomógł: 11

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


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


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 maja 2021, o 19:08 
    Offline
    Moderator
    Avatar użytkownika

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

    dokładnie jak pokazał kolega wyżej, nawet nie trzeba nic kopiować, tylko przekazać wskaźnik jako argument do twojej funkcji send()

    _________________
    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: 23 maja 2021, o 19:21 
    Offline
    Nowy

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

    A gdybym chciał zapisać ten bufor do jakiejś zmiennej, żebym mógł ją użyć potem, jaka to zmienna powinna być?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 maja 2021, o 19:29 
    Offline
    Moderator
    Avatar użytkownika

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

    marker82 napisał(a):
    A gdybym chciał zapisać ten bufor do jakiejś zmiennej,

    Ale pomyśl sobie sam chwilę, jak można bufor zapisać do zmiennej ?

    Bufor jakiś ciąg znaków w tym przypadku - tu konkretnie tzw C-String, tablica danych (bajtów) ...

    więc jak już to kopiujesz zbiór bajtów z jednego miejsca pamięci do innego - rozumiesz ?

    Masz do tego różne funkcje w C. Począwszy od takich które operują na stringach strcpy() itp aż po takie które kopiują po prostu wybraną ilość bajtów jak chociażby memcpy()

    _________________
    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  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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