Jak jsem si nabehnul aneb double v pacalu na AVR

Pavel Kutina hw na prelude.cz
Pondělí Červenec 21 09:08:19 CEST 2014


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
>


Další informace o konferenci Hw-list