Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 25 sty 2025, o 03:51


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 ]
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: 27351
Lokalizacja: Szczecin
Pomógł: 1042

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: 27351
Lokalizacja: Szczecin
Pomógł: 1042

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