Jak jsem si nabehnul aneb double v pacalu na AVR

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Pondělí Červenec 21 19:16:11 CEST 2014


No ja bych radsi rovnou pouzil ten float, o vsechno se postara knihovna 
a nejake rozsahy se nemusi resit... Skoro uz jsem chtel udelat test 
rychlosti ale zrovna jsem nemel po ruce AVR... U ARMu to bude vsechno 
jinak diky HW podpore 32b nasobeni a deleni.
Dne 21. 7. 2014 10:24, Jan Waclawek napsal(a):
> Tak nejak.
>
> Ja osobne by som si ako prve definoval typ ako record styroch 16-bitovych
> cisiel (asi aj v tom microPascale to bude "word"), a napisal si procedury
> pre scitanie/odcitanie/nasobenie, to naozaj nie je tazke.
>
> Naviac, by som si rozlozil tie vyrazy v datasheete, nemusi sa potom riesit
> znamienkovost, az v poslednom kroku je odcitanie, ale aj to ma za vysledok
> kladne cislo.
>
> wek
>
>
>
> ----- Original Message ---------------
>> Dìlá se to tak, ¾e s tím èíslem pracujete po 16bitech, ale pro
>> mezivýsledek vyu¾íváte 32bitù. Potom násobení 16x16bitù dá 32bitù, nic
>> nepøeteèe, jen horních 16bitù pou¾ijete jako pøenos do vy¹¹ích øádù.
>>
>>
>> Tomá¹
>>
>>
>>> 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.
>>> 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.
>>> Pavel Kutina
>>
>>> Dne 21.7.2014 8:21, Tomá¹ Hamouz napsal(a):
>>>> Problém je v tom, ¾e ten example psal nìjaký trotl.
>>>> Napi¹te to pøesnì podle datasheetu, tam se pou¾ívají pouze celoèiselné
>>>> typy, dokonce tam máte doporuèenou i konkrétní velikost ka¾dé
>>>> promìnné, aby nepøetekla.
>>>> Na závìr si konverzi na float klidnì udìlejte.
>>>>
>>>> Tomá¹
>>>>
>>>>
>>>>> Zdravim,
>>>>> tak si musim postezovat:
>>>>> Zakoupil jsem sobe ultrapresne tlakove cidlo MEAS MS5611, ze supliku
>>>>> vyhrabnu Arduino Pro Mini, osazene ATmegou 328P s tim, budu merit tlak a
>>>>> teplotu a na UART si posilat namerena data.
>>>>> Protoze s Arduinem nejsem kamarad (ale ta mrnava desticka s 328P se mi
>>>>> libi), pripajel jsem na nej ISP konektor, zrusil cely arduinovsky
>>>>> bootloader a zacal psat v Mikropascalu pro AVR, hex do toho sypu pres
>>>>> avrdude, dale sama pozitiva a socialni jistoty. Jako voditko jsem mel C
>>>>> example.
>>>>> Vcelku to slo, az do te doby, nez jsem zjistil, ze v examplu je pro pet
>>>>> promennych v zaverecnych vypoctech pouzita nehezka obludnost:
>>>>> double P; // compensated pressure value
>>>>> double T; // compensated temperature value
>>>>> double dT; // difference between actual and measured temperature
>>>>> double OFF; // offset at actual temperature
>>>>> double SENS; // sensitivity at actual temperature
>>>>> A ja jako na potvoru ve svem oblibenem kompilatoru od MikroE mam
>>>>> nejdelsi datovy typ 32 bitu... Protoze jde o presnost, nejak moc
>>>>> nepripada v uvahu, ze bych to nekde zkrouhnul a spodni bity zahodil.
>>>>> Nenapada vas nekoho, jak podobnou zradu ocurat? Urcite by slo promennou
>>>>> rozhodit na 32bit MSB a LSB, jen nevim, jak bych s tim pak dal pocital.
>>>>> Kdyby se nekdo chtel pokochat:
>>>>> Datasheet MS5611:
>>>>> http://www.amsys.info/sheets/amsys.en.ms5611_01ba03.pdf
>>>>> Example code:
>>>>> http://www.amsys.info/sheets/amsys.en.an520_e.pdf
>>>>> Asi nezbyde, nez tam ten arduinovsky loader nacpat zpatky (Arduino
>>>>> uint64_t umi) a napsat to v tom Wiringu, ale velkou radost z toho nemam,
>>>>> pripadam si dost jako idiot.
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list