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



Teraz jest 28 mar 2024, o 20:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 8 sty 2020, o 07:55 
Offline
Użytkownik

Dołączył(a): 29 paź 2017
Posty: 230
Pomógł: 26

Witajcie znowu nudzę :)
Staram się połączyć swój mały projekt z Biblioteką jak w temacie
Trochę się poszamotałem i w trakcie przeglądania źródła napotkałem na zapis którego nie rozumiem
Wykropkowałem kod i pozostawiłem tylko to czego nie rozumiem
Plik mk_multi_uart.c od linijki 1007

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

_________________
Jestem na GG 31324
Nowy soft, nowa nadzieja.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2020, o 10:45 
Offline
Użytkownik

Dołączył(a): 22 kwi 2017
Posty: 99
Lokalizacja: Piła
Pomógł: 4

Jeśli używasz transmisji binarnej to tam ma być jedynka i skompiluje się funkcja uart_reg_callback_bin (), jeśli nie używasz to musi być 0 i się nie skompiluje (jak używasz eclipse to ta część będzie na szaro)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2020, o 11:05 
Offline
Użytkownik

Dołączył(a): 29 paź 2017
Posty: 230
Pomógł: 26

OK, OK
To o czym piszesz rozumiem.
Natomiast zwróć uwagę na linijkę nr 5
Tu w przypadku if USE_BIN == 1 wpisywana jest do uarttab[ uart_nr ]->bin wartość ud_ascii;
To jest to czego nie pojmuję
w linii nr 15 jest odwrotnie.

_________________
Jestem na GG 31324
Nowy soft, nowa nadzieja.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2020, o 11:40 
Offline
Moderator
Avatar użytkownika

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

JarekB napisał(a):
To jest to czego nie pojmuję

Dlatego że w trybie pracy ASCII wykorzystywany jest ten sam bufor, który nazywa się bin

_________________
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: 8 sty 2020, o 11:45 
Offline
Użytkownik

Dołączył(a): 29 paź 2017
Posty: 230
Pomógł: 26

Chyba to jest jednak dla mnie za trudne

Może tak zadam pytanie
Co się znajdzie w zmiennej uarttab[ uart_nr ]->bin
USE_BIN będzie się równało 0?

_________________
Jestem na GG 31324
Nowy soft, nowa nadzieja.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2020, o 14:41 
Offline
Moderator
Avatar użytkownika

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

JarekB napisał(a):
uarttab[ uart_nr ]->bin

to jest tylko bufor na dane, który czasem jest używany do odbioru danych binarnych a czasem do odbioru ASCII. Co to za różnica co w nim będzie siedziało ? To zależy od kodu jak obsługuje ten bufor. Nawet jeśli ustawisz komunikację ASCII ale dasz np tryb 9-bit to i tak musi się włączyć na siłę tryb binarny bo jak inaczej. W związku z tym że biblioteka obsługuje wiele rodzajów komunikacji muszą być odpowiednie reakcje na różne rzeczy.

Więc jeszcze raz - wyobraź sobie że to uarttab[ uart_nr ]->bin jest jakąś zmienną tablicową

char tab[x];

czyli buforem na dane - przy czym biblioteka nawet automatycznie zmieni ten char na uint16_t jeśli wybierzesz komunikację 9-bit

_________________
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: 8 sty 2020, o 15:18 
Offline
Użytkownik

Dołączył(a): 29 paź 2017
Posty: 230
Pomógł: 26

Widzisz Mirek gdyby to była zmienna tablicowa to to rozumiem
Ale w pliku mk_multi_uart.h deklaracja tej zmiennej wygląda tak:
(od linii 200)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Jestem na GG 31324
Nowy soft, nowa nadzieja.



Ostatnio edytowano 8 sty 2020, o 15:22 przez JarekB, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2020, o 15:22 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 1079
Pomógł: 73

Nie wiem jak wygląda ta biblioteka ale ten bin:

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


i ten bin:

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


to dwa różne biny



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2020, o 15:25 
Offline
Moderator
Avatar użytkownika

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

Jarecki napisał(a):
Nie wiem jak wygląda ta biblioteka ale ten bin:

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


i ten bin:

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


to dwa różne biny


nie nie to jest właśnie akurat to samo

_________________
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: 8 sty 2020, o 15:26 
Offline
Użytkownik

Dołączył(a): 29 paź 2017
Posty: 230
Pomógł: 26

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


Poddaje się.

_________________
Jestem na GG 31324
Nowy soft, nowa nadzieja.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2020, o 15:27 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 1079
Pomógł: 73

Możesz pokazać ciało struktury TUARTINFO ?

------------------------ [ Dodano po: 1 minucie ]

Jarecki napisał(a):
Nie wiem jak wygląda ta biblioteka ale ten bin:

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


i ten bin:

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


to dwa różne biny



Przepraszam, wprowadziłem Cię w błąd. Źle sobie popatrzyłem, nie było tematu :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2020, o 15:29 
Offline
Moderator
Avatar użytkownika

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

tak wyżej poprawiłem to jest to samo bin ;) i co więcej to nie jest bufor - przepraszam - pisałem wcześniej troszkę z pamięci. To jest flaga softłerowa

------------------------ [ Dodano po: 1 minucie ]

ale i tak sprowadza się to do tego co pisałem wyżej - że biblioteka dzięki niej sama potrafi się przełączyć na transmisję binarną i takim przypadkiem jest (jak mi się zdaje o ile pamiętam ;) właśnie transmisja 9 bit)

_________________
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: 8 sty 2020, o 15:39 
Offline
Użytkownik

Dołączył(a): 29 paź 2017
Posty: 230
Pomógł: 26

Ufff.
To teraz wróćmy pytania pierwotnego na samej górze wątku.
Jak to działa?
Bo skoro USE_BIN == 1
To nie powinniśmy używać uart_reg_callback
tylko callbacków służących do obsługi bin i bin 9 bit
uart_reg_callback_bin
uart_reg_callback_bin9

_________________
Jestem na GG 31324
Nowy soft, nowa nadzieja.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2020, o 16:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

Witam!
Linia 1010 dotyczy funkcji powyżej umieszczonej(jest w ciele funkcji).
Linia 1016 włącza do kompilacji pozostałą część kodu.
Jeśli używasz EKLIPSE to zobaczysz działanie tego przełącznika(jeżeli USE_BIN będzie FALSE to część kodu będzie szara - wyłączona z kompilacji).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2020, o 19:32 
Offline
Moderator
Avatar użytkownika

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

JarekB --> korzystasz ty z zalet ECLIPSA czy nie ? Może w końcu warto ? ;)

to spójrz:

gdy BIN = 0
Obrazek

a tu dla BIN = 1
Obrazek

Więc dlaczego piszesz że nie powinniśmy używać funkcji do rejestracji callbacka?

------------------------ [ Dodano po: 2 minutach ]

toż widać z tego, że gdy mamy włączoną funkcjonalność obsługi binarnej BIN=1 to można też/jednocześnie korzystać i z callbacka dla ASCII ... w czym problem?

A gdy mamy BIN=0 to tryb binarny włączy się automatycznie dla komunikacji 9-bit - ale piszę tobie o tym od samego początku

_________________
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: 15 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] 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