ATNEL tech-forum https://forum.atnel.pl/ |
|
MK_MULTI_UART prośba o wyjaśnienie https://forum.atnel.pl/topic22778.html |
Strona 1 z 1 |
Autor: | JarekB [ 8 sty 2020, o 07:55 ] |
Tytuł: | MK_MULTI_UART prośba o wyjaśnienie |
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 |
Autor: | kazekat [ 8 sty 2020, o 10:45 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
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) |
Autor: | JarekB [ 8 sty 2020, o 11:05 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
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. |
Autor: | mirekk36 [ 8 sty 2020, o 11:40 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
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 |
Autor: | JarekB [ 8 sty 2020, o 11:45 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
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? |
Autor: | mirekk36 [ 8 sty 2020, o 14:41 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
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 |
Autor: | JarekB [ 8 sty 2020, o 15:18 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
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) |
Autor: | Jarecki [ 8 sty 2020, o 15:22 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
Nie wiem jak wygląda ta biblioteka ale ten bin: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. i ten bin: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. to dwa różne biny |
Autor: | mirekk36 [ 8 sty 2020, o 15:25 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
Jarecki napisał(a): Nie wiem jak wygląda ta biblioteka ale ten bin: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. i ten bin: 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 |
Autor: | JarekB [ 8 sty 2020, o 15:26 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
Hmmm język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Poddaje się. |
Autor: | Jarecki [ 8 sty 2020, o 15:27 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
Możesz pokazać ciało struktury TUARTINFO ? ------------------------ [ Dodano po: 1 minucie ] Jarecki napisał(a): Nie wiem jak wygląda ta biblioteka ale ten bin: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. i ten bin: 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 |
Autor: | mirekk36 [ 8 sty 2020, o 15:29 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
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) |
Autor: | JarekB [ 8 sty 2020, o 15:39 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
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 |
Autor: | Wirnick [ 8 sty 2020, o 16:17 ] |
Tytuł: | Re: MK_MULTI_UART prośba o wyjaśnienie |
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). |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |