Come spiegate questo: IDE 0022 costrutto if non va?!?

Ciao, sono alle prese con un problema strano.. Sto utilzzando l'IDE 0022, mi trovo con una funzione che riceve in ingresso ore e minuti di un ds1307, per un motivo, mi serve fare un controllo sui minuti in ingresso, ho creato quindi un if del genere:

//****************************************************
//****************************************************
void qlockTwoConverter(int ore, int minuti)
//****************************************************
//****************************************************
{
int meno = 0;
int piu = 0;
Serial.println("ecco i minuti");
Serial.print(minuti);

//inizializzo le variabili a 0
int newMinuti = 0;
int ledMinuti = 0;
int soglia = 34;
int prova = 10;

if (meno == 0)
{
Serial.println("Ciao meno = 0");
}

//****se i minuti sono > di 34. Es: 6:53*****\\\
if (prova > soglia)
{
meno = 1;
piu = 0;
Serial.println("ho settato meno a 1 e piu a 0");
}

meno = 0;
piu = 1;


...

nel codice potete vedere i vari tentativi che ho fatto, come ad esempio dichiarare una variabile prova che vale 10, e fare un controllo tipo:

if (prova > soglia)
{
.. le varie printf
}

insomma su terminale, mi viene stampato tutto quello che vedete, è come se il controllo dell'if risulta vero, cosa che non dovrebbe essere poichè 10 non è maggiore di 34! O.o

Qualcuno ha avuto un problema simile? Suggerimenti?

Grazie in anticpo

strano strano,mmm prova a postare il codice completo forse li c’è qualcosa che non va :smiley:

Madwriter: strano strano,mmm prova a postare il codice completo forse li c'è qualcosa che non va :D

+1

Ecco qui, intanto vado alla ricerca dell’errore anche io, perchè ho provato un nuovo sketch con un controllo semplice e funziona, quindi non è l’if che non va…xD:

//LIBRERIA INCLUSE
#include <Wprogram.h>
#include <Wire.h>
#include <DS1307.h>

//variabili per la data e l'ora

int anno; //variabile anno
int mese; //variabile mese
int giorno; //variabile giorno
int ore; //variabile ore
int minuti; //variabile minuti
int secondi; //variabile secondi


//*************************************************************
//*************************************************************
void setup()
//*************************************************************
//*************************************************************
{

Serial.begin(9600);

//Setto orologio
RTC.stop();  
RTC.set(DS1307_HR, 11);    
RTC.set(DS1307_MIN, 45);   
RTC.start(); 

Serial.println("Orologio Avviato");
leggiOra();

}


//*************************************************************
//*************************************************************
void loop()
//*************************************************************
//*************************************************************
{
  //Funzione che legge l'orario
  leggiOra();
  //Funzione che converte l'orario
  qlockTwoConverter(ore, minuti);
  delay(1000);
}

//*************************************************************
//*************************************************************
void leggiOra()
//*************************************************************
//*************************************************************
{
anno = RTC.get(DS1307_YR,true);
mese = RTC.get(DS1307_MTH,false);
giorno = RTC.get(DS1307_DATE,false);
ore = RTC.get(DS1307_HR,false);
minuti = RTC.get(DS1307_MIN,false);
secondi = RTC.get(DS1307_SEC,false);
}










//****************************************************
//****************************************************
void qlockTwoConverter(int ore, int minuti)
//****************************************************
//****************************************************
{
int meno = 0;
int piu = 0;
int prova = 30;
Serial.print("ecco i minuti: ");
Serial.print(minuti);

//inizializzo le variabili a 0
int newMinuti = 0;
int ledMinuti = 0;

int soglia = 34;

//****se i minuti sono > di 34. Es: 6:53*****\\\
if (prova > soglia)
{
Serial.println("se esci sei un coglione");
}


meno = 0;
piu = 1;
Serial.println("ho settato meno a 0 e piu a 1");

/*
//****se i minuti sono < di 34. Es: 6:23*****\\\
 if (minuti < 34)
{
piu = 1;
meno = 0;
}*/



if(meno == 1)
{
  piu = !piu;
  Serial.println("Sono in meno qui dentro");
  ore = ore+1;
  minuti = 60 - minuti;
  
  //se i minuti sono meno di 10
  if(minuti < 10)
  {
   newMinuti = 5;
   ledMinuti = minuti - newMinuti;
  }
  
  //se i minuti sono più di 10
  if(minuti > 10)
  {
  ledMinuti = minuti % 10;
  
  
  //se i led accesi corrispondono a 5 allora saranno = a zero
  if(ledMinuti == 5)
  {
  ledMinuti = 0;
  }
  
 
 
  newMinuti = minuti - ledMinuti; 
  
}
}


else if(piu == 1)
{
 
  meno = !meno;
   ore = ore;
  Serial.println("Sono in + qui dentro");
ledMinuti = minuti % 10;
//se i led accesi corrispondono a 5 allora saranno = a zero
  if(ledMinuti == 5)
  {
  ledMinuti = 0;
  }
  
newMinuti = minuti - ledMinuti;
}


//qui controlo se accendere "è" oppure "sono le"
if (ore==1)
{
//accendi "è"
Serial.print("E' ");
}

if(ore > 1)
{
//accendi "sono le"
Serial.print("Sono le ");
}



//switch-case dell ore;
switch(ore) {
  case 1:
  //accendi "l'una"
  Serial.print("l'una");
  break;
 
 case 2:
 //accendi "due"
Serial.print("due"); 
break;

 case 3:
 //accendi "tre"
Serial.print("tre"); 
break;
 case 4:
 //accendi "quattro"
Serial.print("quattro"); 
break;
 case 5:
 //accendi "cinquee"
Serial.print("cinque"); 
break;
 case 6:
 //accendi "sei"
Serial.print("sei"); 
break;
 case 7:
 //accendi "sette"
Serial.print("sette"); 
break;
 case 8:
 //accendi "otto"
Serial.print("otto"); 
break;
 case 9:
 //accendi "nove"
Serial.print("nove"); 
break;
 case 10:
 //accendi "dieci"
Serial.print("dieci"); 
break;
 case 11:
 //accendi "undici"
Serial.print("undici"); 
break;
 case 12:
 //accendi "dodici"
Serial.print("dodici"); 
break;
}



//ora controllo se devo accendere la scritta "e" oppure "meno"
if(piu)
{
//accendi "e"
Serial.print(" e ");
}

else
{
//accendi "meno"
Serial.print(" meno ");
}


//ora effettuo lo switch dei minuti
switch(newMinuti) {
  
  case 5:
  //accendi "cinque"
  Serial.print("cinque");
  break;
  
  case 10:
  //accendi "dieci"
  Serial.print("dieci");
  break;
  
  case 15:
  //accendi "un quarto"!
  Serial.print("un quarto");
  break;
  
  case 20:
  //accendi "venti"
  Serial.print("venti");
  break;
  
  case 25:
  //accendi "venticinque"
  Serial.print("venticinque");
  break;
  
  case 30:
  //accendi "mezza"
  Serial.print("mezza");
  break;
  
}


Serial.print(" + ");


//ora effettuo lo switch dei led da accendere
switch(ledMinuti) {
  
  
  case 0:
  //non accendo neanche un led
  Serial.print("zero led accesi");
  break;
  
   case 1:
  //accendo 1 led
  Serial.print("1 Led acceso");
  break;
  
   case 2:
  //accendo 2 led
  Serial.print("2 Led accesi");
  break;
  
   case 3:
  //accendo 3 led
  Serial.print("3 Led accesi");
  break;
  
   case 4:
  //accendo 4 led
  Serial.print("4 Led accesi");
  break;
  
  }
 
 Serial.println();
 
}

Grazie!