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 31 maja 2025, o 03:52


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 17 lip 2015, o 21:02 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 06 maja 2015
    Posty: 14
    Pomógł: 0

    Cześć w BB wydanie I jest taki oto (kawałek) kodu:

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



    I mam pytanie odnośnie linijki 11

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


    Czy w tym miejscu nie powinno byc przesunięcia bitowego w lewo tzn. tak:

    lcd_sendHalf(_data<< 4);

    Pytam bo mam wątpliwość w książce jest napisane, że przesyłamy starszą część bajtu czyli bity D7...D4 a z tego przykłady rozumiem, to tak:

    np mamy zmienną _data opisaną wartością:

    11011100

    część starszą bitu zaznaczyłem na czerwono, młodsza na niebiesko.
    Więc po przesunięciu bitowym o 4 miejsca w prawo będzie:
    00001101

    A więc starszą część wyzerujemy i czy takie działanie jest poprawne, nie powinniśmy wyzerować młodszej części ??

    _________________
    Dopiero się uczę ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 lip 2015, o 21:21 
    Offline
    Użytkownik

    Dołączył(a): 25 lut 2015
    Posty: 252
    Lokalizacja: Lublin
    Pomógł: 23

    Rozwiązanie Twojego dylematu leży w kodzie wywoływanej funkcji, tzn. 'lcd_sendHalf'

    ------------------------ [ Dodano po: kilkunastu sekundach ]

    A kod w książce jest oczywiście poprawny, żeby nie było wątpliwości.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 lip 2015, o 21:23 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2012
    Posty: 777
    Lokalizacja: Karpicko k. Wolsztyna
    Pomógł: 197

    Spójrz na funkcję lcd_sendHalf. W jej wnętrzu "próbkowane" są cztery najmłodsze bity wysyłanego bajtu. Więc żeby wysłać cztery starsze bity trzeba je najpierw przesunąć w prawo tak aby się znalazły w miejscu "próbkowanych" młodszych bitów.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 lip 2015, o 21:58 
    Offline
    Użytkownik
    Avatar użytkownika

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

    major697 napisał(a):
    A więc starszą część wyzerujemy i czy takie działanie jest poprawne, nie powinniśmy wyzerować młodszej części ??

    Wartość _data jest niezmienna, natomiast wynik operacji przesunięcia(dzielenia przez 16) jest liczbą całkowitą (część ułamkowa idzie w zapomnienie). Przy przekazaniu na LCD młodszej części _data dokonuje się maskowania(zakrycia zerami) części starszej niezmiennej _data .



    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 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO