Go Down

Topic: Comprendere perché funziona un i"f Statement". (Read 72 times) previous topic - next topic

Psygar

Salve,buonasera.
Avrei bisogno una mano a capire come funziona un "if statement" che ho copiato da un tutorial Youtube.
Vorrei infatti capire come funziona esattamente per essere in grado di riprodurlo e spiegarlo a mia volta.
Code: [Select]

#include <Mouse.h>
int horzPin = A0;  // Analog output of horizontal joystick pin
int vertPin = A1;  // Analog output of vertical joystick pin
int selPin = 9;  // select button pin of joystick

int vertZero, horzZero;  // Stores the initial value of each axis, usually around 512
int vertValue, horzValue;  // Stores current analog output of each axis
const int sensitivity = 200;  // Higher sensitivity value = slower mouse, should be <= about 500
int mouseClickFlag = 0;

void setup()
{
  pinMode(horzPin, INPUT);  // Set both analog pins as inputs
  pinMode(vertPin, INPUT);
  pinMode(selPin, INPUT);  // set button select pin as input
  digitalWrite(selPin, HIGH);  // Pull button select pin high
  delay(1000);  // short delay to let outputs settle
  vertZero = analogRead(vertPin);  // get the initial values
  horzZero = analogRead(horzPin);  // Joystick should be in neutral position when reading these

}

void loop()
{
  vertValue = analogRead(vertPin) - vertZero;  // read vertical offset
  horzValue = analogRead(horzPin) - horzZero;  // read horizontal offset

  if (vertValue != 0)
    Mouse.move(0, vertValue/sensitivity, 0);  // move mouse on y axis
  if (horzValue != 0)
    Mouse.move(horzValue/sensitivity, 0, 0);  // move mouse on x axis

  if ((digitalRead(selPin) == 0) && (!mouseClickFlag))  // if the joystick button is pressed
  {
    mouseClickFlag = 1;
    Mouse.press(MOUSE_LEFT);  // click the left button down
  }
  else if ((digitalRead(selPin))&&(mouseClickFlag)) // if the joystick button is not pressed
  {
    mouseClickFlag = 0;
    Mouse.release(MOUSE_LEFT);  // release the left button
  }
}


Non riesco a comprendere come funzionino l'ultimo "if" e l'ultimo "else if", più precisamente non capisco come mai viene semplicemente scritto "!mouseClikFlag" o ancora solo lo stato del pulsante, esattamente scrivere in questa maniera la condizione dell' "if Statement" cosa verifica? Grazie mille a chiunque mi darà una mano!

Silente

if (variabile, o funzione che ritorna cose) É come dire if (variabile !=0), quindi se é diverso da 0. if ( !variabile o funzione) é come dire se é uguale a 0
Dove va un numero va una variabile, una funzione e/o  un test.
Per ottenere devi spiegare

Strumenti/Formattazione automatica fino alla morte!
Cristianesimo:bibbia='C':K&R

Psygar

if (variabile, o funzione che ritorna cose) É come dire if (variabile !=0), quindi se é diverso da 0. if ( !variabile o funzione) é come dire se é uguale a 0
Ti ringrazio, scusa la domanda magari banale ma proprio non trovavo nulla, probabilmente cercavo con i termini sbagliati.

gpb01

#3
Dec 11, 2019, 12:05 am Last Edit: Dec 11, 2019, 12:05 am by gpb01
>Psygar: essendo i tui primi post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :)

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell'apposito thread, nessuno ti potrà rispondere ulteriormente, quindi ti consiglio di farla al più presto. ;)


>Silente: Ti prego, prima di rispondere, di verificare sempre se l'utente abbia effettuato la presentazione, cosa che, ovviamente, NON può essere possibile se il suo numero di post è 1.
Search is Your friend ... or I am Your enemy !

Go Up