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 9 kwi 2025, o 06:01


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
    Autor Wiadomość
    PostNapisane: 15 cze 2013, o 06:11 
    Offline
    Użytkownik

    Dołączył(a): 24 lut 2013
    Posty: 405
    Pomógł: 0

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


    moje pytanie jest takie gdy zmienna wynosi do 255 jest zapisywana poprawna liczba 255 , gdy jest większa pokazuje mi jakieś dziwne liczby np. zmienna równa się 800 to odczytuje 32 a przecież to jest zmienna LONG ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 cze 2013, o 06:37 
    Offline
    Moderator
    Avatar użytkownika

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

    slawek3000 napisał(a):
    Znalazłem taki kod w necie


    Nie wszystko co się znajdzie w internecie oznacza od razu, że jest dobre nawet gdy sam autor chwali się że działa. Nie wiedziałeś o tym - i to jak widać jest taki przypadek.

    slawek3000 napisał(a):
    moje pytanie jest takie gdy zmienna wynosi do 255 jest zapisywana poprawna liczba 255 , gdy jest większa pokazuje mi jakieś dziwne liczby np. zmienna równa się 800 to odczytuje 32 a przecież to jest zmienna LONG ?


    zobacz przecież jak byk niejako masz napisane w kodzie:

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


    a dokładniej spójrz na lewą stronę

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


    już nawet nie chcąc zajrzeć do helpa bascoma to nie wydaje ci się podejrzane to "byte" ? nie zastanawia cię że chodzi o zapis/odczyt bajtu ? .... a ty próbujesz zapisać odczytać zmienną 4 bajtową ? i dziwisz się że nie działa ? :(

    no ale tak to jest jak człowiek ulegnie czyjejś autosugestii z internetu - tym bardziej gdy ktoś tam pisze jak to mu niby rzekomo super działa

    tymczasem wystarczy zajrzeć chociażby do helpa bascomicznego online na stronie producenta

    Obrazek

    i tam przeczytać, że:

    Cytuj:
    I2CWBYTE sends one byte to an I2C-device.


    to zapis JEDNEGO bajtu

    zatem nie może to co masz napisane działać poprawnie ponieważ gdy zapisujesz liczbę 800 to masz dwa bajty, starszy i młodszy

    00000011 00100000

    widzisz? ten po lewej to starszy bajt liczby 800 zapisanej jako WORD (na dwóch bajtach) ... o wartości = 7 natomiast drugi bajt ten po prawej to młodszy bajt (gdzie ta czerwona jedynka) ... widzisz ? i on jak widzisz ma wartość 32

    więc teraz już się chyba nie dziwisz ? że wyświetla ci się tam 32 - to nie żadna głupota - bo jak zapisujesz jeden bajt funkcją

    i2cwbyte

    a jako argument podajesz bardziej pojemną liczbę (4 czy 2 bajtową) to co? to funkcja zapisuje z niej tylko najmłodszy bajt. Chcesz się upewnić ? to zapisz sobie np liczbę 257 - a odczytasz z tego liczbę = 1 ;)

    _________________
    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: 15 cze 2013, o 06:42 
    Offline
    Użytkownik

    Dołączył(a): 24 lut 2013
    Posty: 405
    Pomógł: 0

    Ok Mirek tylko jak mam napisać ten kod by prawidłowo zapisywał i odczytywał te zmienne ? :idea:



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 cze 2013, o 14:24 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 14 cze 2012
    Posty: 135
    Pomógł: 1

    slawek3000, utwórz 4 nowe zmienne typu BYTE i zapisuj do nich odpowiednie bity ze zmiennej LONG za pomocą SHIFT lub OVERLAY



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 cze 2013, o 15:06 
    Offline
    Użytkownik

    Dołączył(a): 24 lut 2013
    Posty: 405
    Pomógł: 0

    OK rozumie to , tylko nie wiem jak napisać ten parę linijek w necie jest na ten temat mało wiadomości



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 cze 2013, o 18:42 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 14 cze 2012
    Posty: 135
    Pomógł: 1

    slawek3000, dam przykład tak na sucho bez sprawdzenia w mikrokontrolerze, ale powinno to działać, a już napewno rozświetlić trochę drogę

    załóżmy że mamy takie zmienne

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


    teraz żeby zapisać zmienną long0 do 4 zmiennych bajt0..3 możemy wykorzystać operacje przesuwania

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


    teraz odwrotnie tzn 4 zmienne byte0..3 zapisac do zmiennej long0

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 cze 2013, o 20:40 
    Offline
    Użytkownik

    Dołączył(a): 24 lut 2013
    Posty: 405
    Pomógł: 0

    Czyli jak rozumiem w tym przypadku mogę zapisać dwie zmienne typu LONG a co jak mam ich 6 ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 cze 2013, o 21:53 
    Offline
    Moderator
    Avatar użytkownika

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

    slawek3000 napisał(a):
    a co jak mam ich 6 ?


    a wiesz co to są pętle w językach programowania ? Bascom też je ma - więc skorzystaj.

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

    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