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



Teraz jest 29 mar 2024, o 14:08


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 ]
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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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