<div dir="ltr"><div><div><div>Dobry den,<br><br></div>akurat som sa chcel spytat, ci Vam uz niekto po tych cca. 25 emailoch rozoberajucich od C vs. Pascal az po free konfiguraciu zivota niekto poradil ako to v tom C napisat pre tych 64 bitov...  Ak nepohrdnete mojou inspiraciou, tak tu je :)<br>
<br></div>Musite si nadefinovat typ uint64 cez typedef tak, ze to budu dva uint32 bezznamienkove integery, high a low part. Jednotlive uint32 musite dalej rozpisat ako union, ktory je raz uint32 a raz ako uchar8 ci uz pole alebo strukturu necham na Vas. Potom si musite nadefinovat vlastne operacie +,-, nasobenie a delenie. Na to potrebujete pracovnu premennu uint16, aby ste videl pretecenie cez 255, teda 511, co vam undikuje, ze mate pri dalsej polozke pripocitat 1. No a potom uz idete len byte po byte... Da sa to urobit aj v C, aj ked vysledny kod asm by bol asi kratsi.<br>
<br></div>A.<br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-07-21 9:08 GMT+02:00 Pavel Kutina <span dir="ltr"><<a href="mailto:hw@prelude.cz" target="_blank">hw@prelude.cz</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Tak to ja bych i rad uz pred puvodnim prispevkem, problem je v tom, ze i v datasheetu jsou dve promenne int64, coz v okamziku, kdy mi pouzivany jazyk nabizi pouze praci s int32, nepatrne komplikuje zivot.<br>

<br>
Ale je pravda, ze konverzi int64 na int32 zvladne podle kolegy weka i programatorsky elev (coz ja tedy evidentne nejsem), tak jsem sel cestou mensiho odporu. Jen se priznam, ze by mne zajimalo, jak to ten elev udela, asi je na mne prilis vedro, ale pocitat s jednim cislem jako s parem spodnich a hornich 32 bitu mi pripada kapku napinave, tim spis, kdyz se s cislem dal pracuje a neni to jen finalni vysledek.<br>

<br>
Pavel Kutina<br>
<br>
<br>
Dne 21.7.2014 8:21, Tomáš Hamouz napsal(a):<div class="HOEnZb"><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Problém je v tom, že ten example psal nějaký trotl.<br>
Napište to přesně podle datasheetu, tam se používají pouze celočiselné<br>
typy, dokonce tam máte doporučenou i konkrétní velikost každé<br>
proměnné, aby nepřetekla.<br>
Na závěr si konverzi na float klidně udělejte.<br>
<br>
Tomáš<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Zdravim,<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
tak si musim postezovat:<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Zakoupil jsem sobe ultrapresne tlakove cidlo MEAS MS5611, ze supliku<br>
vyhrabnu Arduino Pro Mini, osazene ATmegou 328P s tim, budu merit tlak a<br>
teplotu a na UART si posilat namerena data.<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Protoze s Arduinem nejsem kamarad (ale ta mrnava desticka s 328P se mi<br>
libi), pripajel jsem na nej ISP konektor, zrusil cely arduinovsky<br>
bootloader a zacal psat v Mikropascalu pro AVR, hex do toho sypu pres<br>
avrdude, dale sama pozitiva a socialni jistoty. Jako voditko jsem mel C<br>
example.<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Vcelku to slo, az do te doby, nez jsem zjistil, ze v examplu je pro pet<br>
promennych v zaverecnych vypoctech pouzita nehezka obludnost:<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
double P; // compensated pressure value<br>
double T; // compensated temperature value<br>
double dT; // difference between actual and measured temperature<br>
double OFF; // offset at actual temperature<br>
double SENS; // sensitivity at actual temperature<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
A ja jako na potvoru ve svem oblibenem kompilatoru od MikroE mam<br>
nejdelsi datovy typ 32 bitu... Protoze jde o presnost, nejak moc<br>
nepripada v uvahu, ze bych to nekde zkrouhnul a spodni bity zahodil.<br>
Nenapada vas nekoho, jak podobnou zradu ocurat? Urcite by slo promennou<br>
rozhodit na 32bit MSB a LSB, jen nevim, jak bych s tim pak dal pocital.<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Kdyby se nekdo chtel pokochat:<br>
Datasheet MS5611:<br>
<a href="http://www.amsys.info/sheets/amsys.en.ms5611_01ba03.pdf" target="_blank">http://www.amsys.info/sheets/<u></u>amsys.en.ms5611_01ba03.pdf</a><br>
Example code:<br>
<a href="http://www.amsys.info/sheets/amsys.en.an520_e.pdf" target="_blank">http://www.amsys.info/sheets/<u></u>amsys.en.an520_e.pdf</a><br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Asi nezbyde, nez tam ten arduinovsky loader nacpat zpatky (Arduino<br>
uint64_t umi) a napsat to v tom Wiringu, ale velkou radost z toho nemam,<br>
pripadam si dost jako idiot.<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Pavel Kutina<br>
______________________________<u></u>_________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/<u></u>listinfo/hw-list</a><br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/<u></u>listinfo/hw-list</a><br>
<br>
</blockquote>
______________________________<u></u>_________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/<u></u>listinfo/hw-list</a><br>
</div></div></blockquote></div><br></div>