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 28 kwi 2025, o 10:06


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 13 lut 2019, o 08:42 
    Offline
    Nowy

    Dołączył(a): 04 lut 2015
    Posty: 22
    Lokalizacja: Bydgoszcz
    Pomógł: 0

    Witam Wszystkich.
    Po dość długiej przerwie (sprawy osobiste) staram się wrócić do programowania. Sporo zapomniałem i zacząłem od ponownego czytania bluebook'a. Obecnie jestem na rozdziale związanym z obsługą LCD i zatrzymałem się na etapie tworzenia funkcji przesyłającej pół bajtu - kod poniżej.

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


    Moje pytania co do tego kawałka kodu są następujące:
    1) Czym jest "data" w warunku if? Czy to są dane, które zamierzam przesłać do wyświetlenia?
    2) Jak rozumieć warunek pętli if? Czy dobrze rozumuję, że jeśli na pozycji bitu "data" nr 0 spotka się 1 z przesuniętą jedynką (1<<0) to wykona się pierwsza instrukcja, bo warunek będzie prawdą, a gdy spotka 0 z 1 to otrzymam fałsz i wykona się intrukcja nr 2?

    Z góry dziękuję za odpowiedzi. Pozdrawiam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 lut 2019, o 08:50 
    Offline
    Moderator
    Avatar użytkownika

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

    Dlaczego nie wkleiłeś nagłówka funkcji, przecież w nagłówku funkcji widzisz że data to argument przekazywany do funkcji ;) czyli dane przesyłane do LCD. Chodzi oczywiście o 4 najmłodsze bity z tego bajtu

    i ten warunek if panie kochany po kolei sprawdza każdy bit w tym bajcie ... W zależności od tego czy bit na pozycji zerowej jest =1 to ustawiany jest na stan wysoki odpowiadający mu fizyczny pin mikrokontrolera. Jeśli jest =0 to wystawiany jest stan niski na ten pin

    więc masz rację w pkt.2 - to właśnie wyżej opisałem bardziej precyzyjnie

    _________________
    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: 13 lut 2019, o 09:18 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2014
    Posty: 1033
    Lokalizacja: Trójmiasto
    Pomógł: 190

    Dodać by tu można informację, iż ta cała wariacja z if-ami jest przez to (albo po to ;) ) by można było w bibliotece skonfigurować dowolny pin procesora jako poszczególne sygnały. Jeśli by podłączyć line D4 ... D7 do jednego portu procesora we właściwej kolejności wystarczyło by zawartość "data" wpisać do tego portu z maskowaniem czterech nieznaczących bitów. Tak więc jak zawsze coś kosztem czegoś - wygoda korzystania z biblioteki i dowolność w doborze pinów, kosztem nieco dłuższego kodu - taki kompromis. Jeśli jednak zdarzy się niedobór pamięci flash można zawsze to nieco odchudzić :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 lut 2019, o 09:21 
    Offline
    Nowy

    Dołączył(a): 04 lut 2015
    Posty: 22
    Lokalizacja: Bydgoszcz
    Pomógł: 0

    Dziękuję za rozwianie wątpliwości :) dalszą część instrukcji z ustawianiem stanów na wysoki i niski rozumiem, nie potrafiłem tylko do końca rozszyfrować warunku. Coś gdzieś mi podpowiadało w głowie, że albo zawsze będzie prawda albo zawsze będzie fałsz i nie wiem dlaczego. Chyba jakieś zaćmienie :lol: Teraz już jest wszystko jasne i mogę wracać do dalszej lektury.



    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: 4 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    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