FAKT jako ?

Odpovědět
Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

FAKT jako ?

Příspěvek od pavel1tu » 08 srp 2019, 08:44

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ý)
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

KarelBrno
Příspěvky: 40
Registrován: 05 kvě 2019, 15:12
Reputation: 0

Re: FAKT jako ?

Příspěvek od KarelBrno » 08 srp 2019, 10:44

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;

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: FAKT jako ?

Příspěvek od pavel1tu » 08 srp 2019, 13:44

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 ...
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: FAKT jako ?

Příspěvek od gilhad » 08 srp 2019, 14:41

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.

KarelBrno
Příspěvky: 40
Registrován: 05 kvě 2019, 15:12
Reputation: 0

Re: FAKT jako ?

Příspěvek od KarelBrno » 08 srp 2019, 15:04

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á :)

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: FAKT jako ?

Příspěvek od pavel1tu » 08 srp 2019, 15:10

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 ....
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 13 hostů