Jak jsem si nabehnul aneb double v pacalu na AVR
Pavel Poucha
p.poucha na papouch.com
Pondělí Červenec 21 09:45:10 CEST 2014
Zdravím,
ve snímačích se běžně vystačí se 16b čísly. Jen se stále musí vše normovat,
tedy posouvat a tak. Výhodu je, že člověk si při to uvědomí co vlastně dělá.
Tedy pokud se například výstup snímače (16b) násobí konstantou (16b),
vznikne teoreticky 32b. Pokud se ale výstup i konstanta rozumně posune, dá
se spodních 16b výsledku zahodit a mít opět 16b. Za mladých časů jsem
upravil algoritmus pro násobení 16b x 16b tak, aby spodních 32b ani
nepočítal. (Viz měřicí přístroj DRAK4)
V dnešní době, když je výpočetní výkon velký, je asi lépe násobit Float x
Float a je po starostech. Násobení 16cx16b s výsledkem 16b je už jen dobré
myšlenkové cvičení :-)
S pozdravem
ing. Pavel Poucha
jednatel
pavel.poucha na papouch.com
Tel. +420 777 232 485
Papouch s.r.o.
Strašnická 1a, 102 00 Praha 10
Tel. +420 272 732 827
Fax +420 272 681 232
Máte-li chuť, navštivte naše stránky http://www.papouch.com/
-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Pavel Kutina
Sent: Monday, July 21, 2014 9:08 AM
To: HW-news
Subject: Re: Jak jsem si nabehnul aneb double v pacalu na AVR
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.
>
>> Pavel Kutina
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
_______________________________________________
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