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 ....