Pages: [1]   Go Down
Author Topic: Problema nel codice [If, else]  (Read 350 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ragazzi è da circa due giorni che sto cercando di capire quale diavoleria è mai questa, non riesco a capire dove sbaglio e come mai il programma cambi una variabile senza che io glie lo dica.
Premetto col dire che ho comprato il simulatore originale di arduino dal sito, Non ho ancora comprato l'arduino perchè ancora non è arrivato in negozio, quindi per ora sto progettando il codice scritto sul simulatore, E' davvero ben fatto e però caz c'e questa bega che non riesco a risolvere, potete aiutarmi? Posto la parte di codice interessata.
Code:
void loop()
{

  if(Scarico = 1){
    GrillettoPremuto = digitalRead(Grilletto);
      if(GrillettoPremuto == HIGH){
              if(Ammo>0){
                Ammo = Ammo - 1;
                digitalWrite(LaserELED_Laser, HIGH);
                lcd.setCursor(7, 1);
                lcd.print("AMMO: ");
                lcd.setCursor(12,1);
                lcd.print(Ammo);
                  if(Ammo<10){
                    lcd.setCursor(13,1);
                    lcd.print(" ");
                  }
              }
              else
              {
                digitalWrite(Riserva, HIGH);
                Scarico = 0;    
              }
      }
      else
      {
        digitalWrite(LaserELED_Laser, LOW);
      }
  }
  else
  {
    RicaricoPremuto = digitalRead(Ricarico);
     if(RicaricoPremuto == HIGH){
      Scarico = 1;
      digitalWrite(Riserva, LOW);
     }
      else
      {
      Scarico = 0;
     }
  }
}

Ecco dove sta il problema? Voi non preoccupatevi di tutte le altre istruzioni, in pratica la parte di codice che non mi va è questa:
Code:
 else
  {
    RicaricoPremuto = digitalRead(Ricarico);
     if(RicaricoPremuto == HIGH){
      Scarico = 1;
      digitalWrite(Riserva, LOW);
     }
      else
      {
      Scarico = 0;
     }
  }

Da come avete notato,  dovrebbe saltare in questa parte di codice solo quando Scarico non è 1 (In pratica 0) se notate, qualche riga più in alto ho scritto l'istruzione: "Scarico = 0;" lui la legge, e memorizza lo 0 ma il problema sta nel fatto che si che tiene lo 0, ma quando lo testo step by step e torno alla prima riga del void loop "if(Scarico = 1){" lui riporta quella variabile "Scarico" a 1! Non capisco il perchè!! Sto uscendo pazzo perfavore aiutatemi a capire dove è che sbaglio...
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
if(Scarico = 1)
Questa è un'assegnazione, non un confronto.  smiley-wink
I confronti si fanno con 2 segni "=="
Code:
if(Scarico == 1)
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Basta, un bacio sulla bocca non te lo leva nessuno! Ahaha scherzo, oh ma non sai quante ne ho tirate. Oh grazie davvero! Dio santo. E dire che li ho anche usati in altre occasioni come vedi, ma non pensavo andassero anche nel controllo di una variabile. Vabbè niente dai ti faccio una bella statua. Ciaociao grazie! <3
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Basta, un bacio sulla bocca non te lo leva nessuno! Ahaha scherzo, oh ma non sai quante ne ho tirate. Oh grazie davvero! Dio santo. E dire che li ho anche usati in altre occasioni come vedi, ma non pensavo andassero anche nel controllo di una variabile. Vabbè niente dai ti faccio una bella statua. Ciaociao grazie! <3
Quella del "=" diverso da "==" è un errore in cui sono cascato anch'io all'inizio. Abituato al Basic dove è il compilatore che distingue a seconda del contesto in cui trova il segno di "uguale" se deve fare un'assegnazione oppure un confronto, la distinzione fatta dal C mi fregava diverse volte  smiley-grin
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Madò veramente! Anche io infatti che provengo dal basic son cascato in sto tranello maledetto che mi ha quasi fatto inventare parolaccie nuove xD Vabbè menomale dai smiley-wink Grazie ancora bye smiley-wink
Logged

Pages: [1]   Go Up
Jump to: