Serial.print(F)

Odpovědět
Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Serial.print(F)

Příspěvek od Ludek » 30 říj 2021, 11:00

Zdravím, vše funguje, jen dotaz amatéra.
koukněte na kod.

Kód: Vybrat vše

float capacitance = (float)val * IN_CAP / (float)(MAX_ADC_VALUE - val);
  Serial.print(F("Capacitance Value = "));
  Serial.print(capacitance, 3);
  Serial.print(F(" pF ("));
  Serial.print(val);
  Serial.println(F(") "));
  while (millis() % 500 != 0);  
Umí někdo vysvětlit, proč ve 4. a v 6. řádku je vždy jedna uvozovka v závorce?
:-)
díky

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

Re: Serial.print(F)

Příspěvek od gilhad » 30 říj 2021, 11:35

Protože je to znak, který chceš vypsat (čísla nesmyslná, ale chceš vidět něco jako):

Capacitance Value = 12.3 pF (456)

Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Re: Serial.print(F)

Příspěvek od Ludek » 30 říj 2021, 13:09

AHA.... už to vidím, uřetřili řádek, aby hodnotu val dali do závorky.
díky :-)

Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Re: Serial.print(F)

Příspěvek od Ludek » 30 říj 2021, 13:37

Ještě jedna otázka, i když sem asi nepatří...
Další F - jakou tu má funkci?
co to je : const float multiplier = 0.1875F;

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Serial.print(F)

Příspěvek od KamilV » 30 říj 2021, 23:37

Pokud myslíš F() u těch stringů, tak je to macro k PSTR(), které stringy přesune z RAM do PROGMEM. Protože konstantní stringy nemusí zabírat místo v RAM.

Pokud myslíš f na konci čísla, tak tím překladači říkat, že nejde o double, ale 32b float.

Odpovědět

Kdo je online

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