Goto page 1, 2 Next
Bo(o)t manager
Guest
Sun Mar 06, 2016 6:10 pm
Cześć!
Mam mały problem, otóż bawię się z termometrem DS18b20 i udało mi
się dopisać do biblioteki odczytywanie numerów seryjnych(z pomocą
tablicy). Chciałbym zrobić to za pomocą zmiennej 64bitowej(łatwiej mi
będzie porównywać numery seryjne(w każdym razie tak mi się wydaje)) i tu
mam problem - konwersja ultoa() obsługuje max. 32 bitowe liczby, a ja
potrzebuję przekonwertować 64bity(dla wyświetlacza). Niestety ulltoa()
brak. Kompilator to avrgcc.
Ma ktoś z Was pomysł jak to ugryźć? Bo mnie na razie do głowy
wpadł pomysł na podzielenie w/w zmiennej na 2 zmienne 32bitowe i potem na
babranie się z wyświetlaniem tego, ale może da się łatwiej?
--
Pozdrawiam
Bo(o)t manager
platformowe gĹupki
Guest
Sun Mar 06, 2016 6:21 pm
przepraszam za śmiałość, ale gdzie tu jest pytanie?
Arkadiusz Kaczmarek
Guest
Sun Mar 06, 2016 6:45 pm
W dniu 2016-03-06 o 18:21, platformowe głupki pisze:
Quote:
przepraszam za śmiałość, ale gdzie tu jest pytanie?
To takie zdanie, gzie na końcu jest " ? "

Widziałem tam takie
Sebastian BiaĹy
Guest
Sun Mar 06, 2016 6:46 pm
On 2016-03-06 18:10, Bo(o)t manager wrote:
Quote:
Cześć!
Mam mały problem, otóż bawię się z termometrem DS18b20 i udało mi
się dopisać do biblioteki odczytywanie numerów seryjnych(z pomocą
tablicy). Chciałbym zrobić to za pomocą zmiennej 64bitowej(łatwiej mi
będzie porównywać numery seryjne(w każdym razie tak mi się wydaje)) i tu
mam problem - konwersja ultoa()
Po pierwsze dlaczego ultoa ma pomagać a komparacji numerów seryjnych?
Po drugie numery seryjne 1Wire sa naturalnie prezentowane w hex.
Bo(o)t manager
Guest
Sun Mar 06, 2016 7:50 pm
On Sun, 06 Mar 2016 18:46:54 +0100, Sebastian Biały napisał/a:
Quote:
On 2016-03-06 18:10, Bo(o)t manager wrote:
[ciach]
Po pierwsze dlaczego ultoa ma pomagać a komparacji numerów seryjnych?
Po drugie numery seryjne 1Wire sa naturalnie prezentowane w hex.
To do odpluskwiania przy okazji(składam te parę bajtów do kupy i
wyświetlam), a poza tym wydaje mi się że łatwiej było by porównywać dwie
64bitowe zmienne niż dwie tablice 8 bajtowe.
--
Pozdrawiam
Bo(o)t manager
Sebastian BiaĹy
Guest
Sun Mar 06, 2016 8:07 pm
On 2016-03-06 19:50, Bo(o)t manager wrote:
Quote:
Po pierwsze dlaczego ultoa ma pomagać a komparacji numerów seryjnych?
Po drugie numery seryjne 1Wire sa naturalnie prezentowane w hex.
To do odpluskwiania przy okazji(składam te parę bajtów do kupy i
wyświetlam)
Tak samo jest w hex. O tyle lepiej że zajmuje mniej miejsca i czasu cpu.
Prezentacja tych numerów w dec jest absurdalna bo nie ma to żadnych
zalet za to ma wady (np. jest dłuższe).
Quote:
, a poza tym wydaje mi się że łatwiej było by porównywać dwie
64bitowe zmienne niż dwie tablice 8 bajtowe.
A jaka jest róznica między nimi? 8 bajtów to 64 bity.
Ja widze że próbujesz skonwertować do napisów dwie liczby i porównać
*napisy*. Gorzej chyba nie da się już zrobić.
Porównaj 8 bajtów i koniec.
Bo(o)t manager
Guest
Sun Mar 06, 2016 8:31 pm
On Sun, 06 Mar 2016 19:50:46 +0100, Bo(o)t manager napisał/a:
Quote:
On Sun, 06 Mar 2016 18:46:54 +0100, Sebastian Biały napisał/a:
On 2016-03-06 18:10, Bo(o)t manager wrote:
[ciach]
Po pierwsze dlaczego ultoa ma pomagać a komparacji numerów seryjnych?
Po drugie numery seryjne 1Wire sa naturalnie prezentowane w hex.
To do odpluskwiania przy okazji(składam te parę bajtów do kupy i
wyświetlam), a poza tym wydaje mi się że łatwiej było by porównywać dwie
64bitowe zmienne niż dwie tablice 8 bajtowe.
Samo ultoa do komparacji raczej nie pomoże, ale jak wiem co mi się dzieje
w środku(co widzę na lcd to mi pomaga).(to tak gwoli wyjaśnienia)
--
Pozdrawiam
Bo(o)t manager
Bo(o)t manager
Guest
Sun Mar 06, 2016 9:29 pm
On Sun, 06 Mar 2016 20:07:40 +0100, Sebastian Biały napisał/a:
Quote:
On 2016-03-06 19:50, Bo(o)t manager wrote:
Po pierwsze dlaczego ultoa ma pomagać a komparacji numerów seryjnych?
Po drugie numery seryjne 1Wire sa naturalnie prezentowane w hex.
To do odpluskwiania przy okazji(składam te parę bajtów do kupy i
wyświetlam)
Tak samo jest w hex. O tyle lepiej że zajmuje mniej miejsca i czasu cpu.
Prezentacja tych numerów w dec jest absurdalna bo nie ma to żadnych
zalet za to ma wady (np. jest dłuższe).
, a poza tym wydaje mi się że łatwiej było by porównywać dwie 64bitowe
zmienne niż dwie tablice 8 bajtowe.
A jaka jest róznica między nimi? 8 bajtów to 64 bity.
Ja widze że próbujesz skonwertować do napisów dwie liczby i porównać
*napisy*. Gorzej chyba nie da się już zrobić.
Porównaj 8 bajtów i koniec.
Chciałem to zrobić trochę inaczej: utworzyłem 64b uinta.
Potem chciałem zrobić tak:
dokleić na końcu bajt z tablicy potem uinta przesunąć w lewo o 8 bitów,
znów dokleić na końcu, znów przesunać itd.
Na końcu mam 64 bitowego uinta do porównania z drugim u64 tym w epromie.
Ale faktycznie może porównać tablice bajt po bajcie.
--
Pozdrawiam
Bo(o)t manager
Waldek Hebisch
Guest
Mon Mar 07, 2016 5:32 am
"Bo(o)t manager" <bo.o.t_manager@wytnijtopoczta.wp.pl> wrote:
Quote:
On Sun, 06 Mar 2016 20:07:40 +0100, Sebastian Bia?y napisa?/a:
On 2016-03-06 19:50, Bo(o)t manager wrote:
Po pierwsze dlaczego ultoa ma pomaga? a komparacji numer?w seryjnych?
Po drugie numery seryjne 1Wire sa naturalnie prezentowane w hex.
To do odpluskwiania przy okazji(sk?adam te par? bajt?w do kupy i
wy?wietlam)
Tak samo jest w hex. O tyle lepiej ?e zajmuje mniej miejsca i czasu cpu.
Prezentacja tych numer?w w dec jest absurdalna bo nie ma to ?adnych
zalet za to ma wady (np. jest d?u?sze).
, a poza tym wydaje mi si? ?e ?atwiej by?o by por?wnywa? dwie 64bitowe
zmienne ni? dwie tablice 8 bajtowe.
A jaka jest r?znica mi?dzy nimi? 8 bajt?w to 64 bity.
Ja widze ?e pr?bujesz skonwertowa? do napis?w dwie liczby i por?wna?
*napisy*. Gorzej chyba nie da si? ju? zrobi?.
Por?wnaj 8 bajt?w i koniec.
Chcia?em to zrobi? troch? inaczej: utworzy?em 64b uinta.
Potem chcia?em zrobi? tak:
doklei? na ko?cu bajt z tablicy potem uinta przesun?? w lewo o 8 bit?w,
zn?w doklei? na ko?cu, zn?w przesuna? itd.
Na ko?cu mam 64 bitowego uinta do por?wnania z drugim u64 tym w epromie.
Ale faktycznie mo?e por?wna? tablice bajt po bajcie.
Nie rozumiem co kombinujesz: jak masz tablice 8 bajtow i uint64_t
to po prostu wzywasz memcmp. Jak chcesz przerobic jedno na
drugie to wzywasz memcpy.
--
Waldek Hebisch
Piotr GaĹka
Guest
Mon Mar 07, 2016 11:26 am
Użytkownik "Bo(o)t manager" <bo.o.t_manager@WYTNIJTOpoczta.wp.pl> napisał w
wiadomości news:1jguqc-16k.ln1@autostopem.przez.galaktyke.org...
Quote:
Ale faktycznie może porównać tablice bajt po bajcie.
na PC pod Builderem jakbym miał porównać dwie tablice (byte t1[8], t2[8]) to
zrobiłbym: if(*(qword*)t1 == *(qword*)t2)... (typy byte i qword to moje
typedef).
P.G.
J.F.
Guest
Mon Mar 07, 2016 11:41 am
Użytkownik "Piotr Gałka" napisał w wiadomości grup
dyskusyjnych:nbjl0r$55a$1$PiotrGalka@news.chmurka.net...
Quote:
Użytkownik "Bo(o)t manager" <bo.o.t_manager@WYTNIJTOpoczta.wp.pl
napisał w Ale faktycznie może porównać tablice bajt po bajcie.
na PC pod Builderem jakbym miał porównać dwie tablice (byte t1[8],
t2[8]) to zrobiłbym: if(*(qword*)t1 == *(qword*)t2)... (typy byte i
qword to moje typedef).
Ale czy AVR przepusci ten qword ?
W 16-bitowym uP C moze nie miec zadnego 64-bitowego typu.
J.
Piotr GaĹka
Guest
Mon Mar 07, 2016 11:46 am
Użytkownik "J.F." <jfox_xnospamx@poczta.onet.pl> napisał w wiadomości
news:56dd5ad7$0$699$65785112@news.neostrada.pl...
Quote:
Użytkownik "Piotr Gałka" napisał w wiadomości grup
dyskusyjnych:nbjl0r$55a$1$PiotrGalka@news.chmurka.net...
Użytkownik "Bo(o)t manager" <bo.o.t_manager@WYTNIJTOpoczta.wp.pl> napisał
w Ale faktycznie może porównać tablice bajt po bajcie.
na PC pod Builderem jakbym miał porównać dwie tablice (byte t1[8], t2[8])
to zrobiłbym: if(*(qword*)t1 == *(qword*)t2)... (typy byte i qword to moje
typedef).
Ale czy AVR przepusci ten qword ?
W 16-bitowym uP C moze nie miec zadnego 64-bitowego typu.
Wychodziło, że ma jakiś typ 64 bitowy ale pisząc nie chciałem szukać jaka
nazwa występowała.
P.G.
Marek
Guest
Mon Mar 07, 2016 2:47 pm
On Mon, 7 Mar 2016 11:41:27 +0100, "J.F."
<jfox_xnospamx@poczta.onet.pl> wrote:
Quote:
W 16-bitowym uP C moze nie miec zadnego 64-bitowego typu.
Szczególnie, że ten AVR jest 8 bitowy
--
Marek
Bo(o)t manager
Guest
Mon Mar 07, 2016 4:10 pm
On Mon, 07 Mar 2016 11:46:49 +0100, Piotr Gałka napisał/a:
[ciach]
Quote:
Wychodziło, że ma jakiś typ 64 bitowy ale pisząc nie chciałem szukać
jaka nazwa występowała.
P.G.
Dokładnie to uint64_t z biblioteki inttypes.h
--
Pozdrawiam
Bo(o)t manager
Piotr GaĹka
Guest
Mon Mar 07, 2016 4:12 pm
Użytkownik "Marek" <fake@fakeemail.com> napisał w wiadomości
news:almarsoft.9089103313276510279@news.neostrada.pl...
Quote:
On Mon, 7 Mar 2016 11:41:27 +0100, "J.F." <jfox_xnospamx@poczta.onet.pl
wrote:
W 16-bitowym uP C moze nie miec zadnego 64-bitowego typu.
Szczególnie, że ten AVR jest 8 bitowy
Poszukałem.
Cytat z autora wątku:
----------------
Chciałem to zrobić trochę inaczej: utworzyłem 64b uinta.
----------------
Znaczy, że ma jakiegoś 64 bitowego uinta.
P.G.
Goto page 1, 2 Next