"offset" in rosso

Ciao a tutti

In un programma che legge i campi magnetici con un sensore SS49E viene dichiarata la variabile offset che, però, nell'IDE appare in rosso! Ho cercato un po', ma non ho trovato informazioni chiare...
Sostituendola con "zero" sembra funzionare tutto nello stesso modo, quindi sembra funzionare correttamente anche "offset". Mi potete spiegare che cos'è offset in C?

Riporto parte del programma che ho trovato, che poi ho sistemato un po' e modificato.

Grazie
Gianluca

float offset=511.0; // nominal 511: halfway 0 and 1024

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setTextColor(WHITE);
  display.clearDisplay();
  pinMode(HALL_PIN,INPUT); //pullup increases current and reduces noise
  pinMode(NULL_PIN,INPUT_PULLUP); //avoids need for external pullup resistor
}

void loop() {

  //perform the measurement. AnalogRead() takes ~100mus.
  long unsigned int sum=0;
  long unsigned int sumsq=0;
  for (int imeas=0; imeas<nmeas; imeas++){
    long int val= analogRead(A0);
    sum=sum+val;
    sumsq=sumsq+val*val;
  }

  //recalculate offset if null-button is pressed
  if(digitalRead(NULL_PIN)==0) offset=float(sum)/nmeas;

Ti ringrazio, ma questo mi era chiaro. Mi sto solo chiedendo perché nell'IDE offset appaia in rosso!

Purtroppo l'IDE esamina le librerie che hai caricato, legge i vari keywords.txt e da quelli prende la colorazione per le "parole chiave" che la libreria definisce da evidenziare ...

Ad esempio (ma è uno tra i tanti), la libreria Adafruit_GPS_Library, tra le keywords ha:

offset KEYWORD2

... e come quella libreriace ne sono molte altre che la definiscono una KEYWORD2.

In questi casi, meglio cambiare nome alla variabile, così si è sicuri che, in futuro, indipendentemente dalla libreria che si utilizzerà, difficilmente si entrerà in conflitto :wink:

Guglielmo

Grazie, Guglielmo
Mi sembra proprio una brutta cosa, però, usare semplici parole comuni in una libreria. Almeno potevano chiamarla GPS_offset!

2 Likes

Aprendo lo stesso programma su un altro computer, offset appare in nero! Mah!...

Non avrai quella libreria installata o qualche altra cosa legata a qualche file keywords.txt ... :roll_eyes:

Guglielmo

Ah! Basta che sia installata! Credevo che dovesse essere inclusa nel programma.
Mi sembrava strano che per poter determinare se scriverlo in rosso andasse a controllare gli #include nel programma già durante la digitazione! L'IDE, appena avviato, va a vedere quali sono tutte le keyword delle librerie installate...

Non l'ho trovato scritto da nessuna parte, ma, per ormai anni di esperienza personale, avendo più volte riscontrato quello che stai riscontrando tu, deduco di SI.

Purtroppo non sono state fissate regole per chi scive una libreria e, a parte ovviamente le parole chiave del C/C++, può usare qualsiasi parola e tu te la trovi segnata in rosso ... :roll_eyes:

E' però cosa anche comoda ... così capisci che potrebbero esserci conflitti e cambi parola :grin:

Guglielmo

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.