Stránka 1 z 1
FAKT jako ?
Napsal: 08 srp 2019, 08:44
od pavel1tu
Nerozumím tomu, ale:
kus kodu ....
Kód: Vybrat vše
int korekce = 51; // konstanta s korekcí měření v Pa
float tlak; // tlak
tlak = ((bmp180.readPressure() + korekce*100.00) / 100.00);
tlak = ((bmp180.readPressure() + korekce*100) / 100);
horní řádek dá výsledek na 2 desetinná místa,
spodní jako celé číslo
pokud jen vyčtu bez úpravy na HPa + korekce je to také v pořádku
blbne IDE, arduino nebo je to tím počasím
HW: UNO rev.3 (originál), BM180 (půjčený)
Re: FAKT jako ?
Napsal: 08 srp 2019, 10:44
od KarelBrno
To bude počasím
Nejsem odborník na C a konverze typů, ale pokud takhle dělíš celým číslem, použije se asi celočíselné dělení.
Pokud budeš dělit floatem (100.0, (float)100, 100f apod.), tak dostaneš výsledek jaký potřebuješ.
btw. osobně bych to zapsal takhle:
Kód: Vybrat vše
#define korekce 51.0f
tlak = bmp180.readPressure() / 100.0f + korekce;
Re: FAKT jako ?
Napsal: 08 srp 2019, 13:44
od pavel1tu
OK díky,
člověk se pořád učí.
Co je zajímavé, že na zahraničním foru v příkladu dělí rovnou stovkou a chodí jim to na 2 des.místa ...
Re: FAKT jako ?
Napsal: 08 srp 2019, 14:41
od gilhad
Velice zalezi na deklarovani promennych a poradi vyhodnocovani vyrazu - Ccko ma pro to sva pravidla a (z matemateckeho hlediska drobne a nepodstatne) zmeny ve vyrazu mohou ves k velmi ruznym vysledkum, podle toho, v jakem poradi se to pocita a tim padem jake konverze se kdy provadi.
Takze ano FAKT a JE TO TAK SPRAVNE, jak je ten jazyk navrzen a ma to sve velmi dobre duvody.
Re: FAKT jako ?
Napsal: 08 srp 2019, 15:04
od KarelBrno
Jojo, naštěstí i když člověk tyhle pravidla moc nezná nebo nad nima nechce přemýšlet, tak prostě stačí používat jen floaty a nemíchat tam jiné typy. Aspoň teda takhle to řeším já
Re: FAKT jako ?
Napsal: 08 srp 2019, 15:10
od pavel1tu
No, nejsem programátor, dělám to většinou způsobem pokus - omyl až pak manuál a pokud to nechápu ani poté - tak zde.
Ale konečně úspěch - začíná to měřit (zatím teplotu a tlak), žije to vlastním životem, ale nedobíjí mi to sakra.
Zpřehledňuji a finalizuji kod pro jednotlive měření, každý týden chci přidat další měření
Kód: Vybrat vše
#define korekce 51.00f // korekce měření v Pa
// ************************** Podle Meteotemplate.com *****************************
// *** Jelikoz vyuzivame take Meteotemplate, aby byla struktura dat obdobna ***
float T; // teplota
//float Tmin; // minimalni teplota za tento den
//float Tmax; // maximalni teplota za tento den
float H; // vlhkost
float P; // tlak
float W; // rychlost větru
float G; // maximalni rychlost vetru za tento den
int B; // smer vetru
int R; // srazky - kumulativne za cely den
int RR; // srazky -prumer za hodinu
//int S; // svit slunce - W/m2
//int UV; // UV index
//float SS; // svit slunce za den - h
//int CC; // oblacnost
float Tin; // teplota uvnitř
float Hin; // teplota uvnitř
float CO2in; // kvaita ovzdusi uvnitr
float Ub; // napeti baterie prepocitane na V
float Us; // napeti solarniho panelu prepocitane na V
//float Un; // napajeci napeti ATMega
ještě je dost práce jak v IDE, tak v PHP.
Kamarád jede v Meteotemplate, já přešel na Grafana
Tlak se mi začal přibližovat nedaleké profi-meteostanici
Po zkušebním PCB bude finál pravděpodobně na první dobrou ....