Stránka 1 z 1

Serial.print(F)

Napsal: 30 říj 2021, 11:00
od Ludek
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

Re: Serial.print(F)

Napsal: 30 říj 2021, 11:35
od gilhad
Protože je to znak, který chceš vypsat (čísla nesmyslná, ale chceš vidět něco jako):

Capacitance Value = 12.3 pF (456)

Re: Serial.print(F)

Napsal: 30 říj 2021, 13:09
od Ludek
AHA.... už to vidím, uřetřili řádek, aby hodnotu val dali do závorky.
díky :-)

Re: Serial.print(F)

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

Re: Serial.print(F)

Napsal: 30 říj 2021, 23:37
od KamilV
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.