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? 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 24 lip 2025, o 16:39


    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: 232
    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: 232
    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: 27416
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 232
    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: 27416
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 232
    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: 1085
    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: 27416
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 232
    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: 1085
    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: 27416
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 232
    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: 27416
    Lokalizacja: Szczecin
    Pomógł: 1043

    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ł: Brak zidentyfikowanych użytkowników i 25 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO