Go Down

Topic: Problemi sul software per un progetto! (Read 5 times) previous topic - next topic

leo72

Scusa, mi spieghi queste righe di codice?
Code: [Select]

  ledyellow(), LOW;
  allarme(), LOW;

qsecofr


Scusa, mi spieghi queste righe di codice?
Code: [Select]

  ledyellow(), LOW;
  allarme(), LOW;



...io pensavo che non si compilassero nemmeno... :smiley-red: ... invece il programma si compila  :smiley-eek:
Comunque consiglio acca di cominciare a scrivere sul display la sola temperatura, quando ci siamo riusciti poi andiamo avanti... una cosa semplice tipo

temperatura = analogRead(PinLM);
lcd.print (temperatura);
... e un bel delay(1000);

... e sul delay poi avremo da lavorare perchè tu intendi far  lampeggiare tutto con il delay ma il delay ti blocca tutto il programma quindi... casino... bisogna cambiare approccio.

leo72



Scusa, mi spieghi queste righe di codice?
Code: [Select]

  ledyellow(), LOW;
  allarme(), LOW;



...io pensavo che non si compilassero nemmeno... :smiley-red: ... invece il programma si compila  :smiley-eek:

Perché la virgola fra 2 operandi indica al compilatore l'uso dell'operatore "," che istruisce appunto il compilatore a verificare le condizioni ma a restituire quella più a destra. Qui LOW non viene assegnato a nulla. Se avessi fatto:
byte temp = ledyellow(), LOW;
dopo l'esecuzione della riga di codice temp avrebbe assunto il valore LOW (cioè "0").
Nell'esempio che ho mostrato, non ha senso. Cos'è che si voleva fare?

tonid

Guardando il codice mi pare di capire che scrivendo
Code: [Select]
ledyellow(), LOW;
  allarme(), LOW;

lui volesse/credesse in qualche modo di pilotare le void esterne al loop con il LOW e HIGH......dico questo perchè lo ripete più volte nel loop e lo utilizza sempre con le void esterne pensando magari che con LOW non entra nella void e che con HIGH invece si. Se così fosse non si scrive "ledyellow(),HIGH;" se si vuole entrare nella void ma semplicemente "ledyellow();".
In buona sostanza tutte le void esterne non vengono mai eseguite fino a quando non vengono chiamate dal loop principale e,una volta letta ed eseguito il codice scritto,si ritorna in automatico al loop principale continuando da dove aveva lasciato.

leo72


lui volesse/credesse in qualche modo di pilotare le void esterne al loop con il LOW e HIGH......dico questo perchè lo ripete più volte nel loop e lo utilizza sempre con le void esterne pensando magari che con LOW non entra nella void e che con HIGH invece si.

Probabile. Difatti chiedevo appunto cosa volesse fare, perché qualunque cosa fosse, in quel modo era sbagliato  :smiley-sweat:

Go Up