Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Josh 02. 10. 2018, 17:57:51
-
Zdravim,
mam 3 hodnoty x/y/z typu long int, ktere potrebuji zapisovat na SD kartu a nasledovne je cist pro zopakovani ukolu.
Zkousel jsem zapsat byte, ale ten jde zapisovat jen do hodnot 255 a dal si moc nevim rady. Nemohl by mi nekdo z praxe napovedet jak na to?
-
Na tohle se jako fakt musis ptat?
-
jsem amater a nevim jak na to :/ kdybych to vedel, neptam se
nevim jestli mam vzit long int -> vyrobit pole byte -> zapsat a opacnym zpusobem cist...
https://www.arduino.cc/en/Reference/FileWrite
Zkousel jsem neco v tomto duchu:
long int a=100000;
file.write(buf, len) ->-> file.write((byte)a,sizeof(a)); ale ocividne to spatne implementuju...
-
Skús dať znak '&' pred premennú a, ktorú zapisuješ. A znak '*' za byte. Potom už len zistiť, prečo to funguje, napr. skúste si pohľadať aký typ argumentu buf očakáva procedúra file.write
-
long int a=100000;
file.write(buf, len) ->-> file.write((byte)a,sizeof(a)); ale ocividne to spatne implementuju...
Melo by fungovat toto (podle typu v dokumentaci co linkujete):
long int a=100000;
file.write((char*)&a,sizeof(a));
Ale overil bych ze to vraci onen sizeof(), coz by melo byt 4, protoze typicky zapis nemusi probehnout cely - treba to zapise 1,1,1,1 ci 1,3 ci 1,2,1... atd takze je treba udelat char* ptr a ten inkrementovat o skutecne zapsane bajty, v pripade < 0 tj chyby ten cyklus zas prerusit.