[RISOLTO] Problema con funzione
salve tutti,
sto riprendendo in mano arduino uno per un piccolo progetto/gioco e ho un problema:
dichiaro una funzione per spegnere in un sol colpo quattro led.
questa funzione fa esattamente il suo dovere se richiamata in void loop() ma, nel caso la volessi inserire in un ciclo for, mi interrompe il ciclo!
in questo caso mi si accende e poi spegne solo il primo led e ciccia.
sappiate che il codice è stato fortemente semplificato, ho provveduto debuggare il tutto mediante seriale e mi sono accorto di questo strano comportamento. nella documentazione ufficiale mi pare di aver letto che alla fine dell'esecuzione della function riprende il normale flusso del programma. boh.
qualcuno ha qualche info riguardo?
ho anche provato inserire return; nella funzione, ma nisba.
grazie!!!
sto riprendendo in mano arduino uno per un piccolo progetto/gioco e ho un problema:
dichiaro una funzione per spegnere in un sol colpo quattro led.
code: [select]
void spegniled(){
for(i=0; i<4; i++){
digitalwrite(i,low);
}
}
questa funzione fa esattamente il suo dovere se richiamata in void loop() ma, nel caso la volessi inserire in un ciclo for, mi interrompe il ciclo!
code: [select]
void loop(){
[...omissis...]
for(i=0; i<5; i++){
// accendo il led alla posizione i
digitalwrite(i,high);
// attendo 4 sec
delay(4000);
// lancio la funzione che mi spegne tutti led
spegniled();
}
[...omissis...]
}
in questo caso mi si accende e poi spegne solo il primo led e ciccia.
sappiate che il codice è stato fortemente semplificato, ho provveduto debuggare il tutto mediante seriale e mi sono accorto di questo strano comportamento. nella documentazione ufficiale mi pare di aver letto che alla fine dell'esecuzione della function riprende il normale flusso del programma. boh.
qualcuno ha qualche info riguardo?
ho anche provato inserire return; nella funzione, ma nisba.
grazie!!!
non potendo vedere il resto... posso solo fare ipotesi.
nella funzione non dichiari la variabile i, perciò ti basi su una dichiarata globalmente.
prova mettere una dichiarazione int i; prima del nella funzione.
nella funzione non dichiari la variabile i, perciò ti basi su una dichiarata globalmente.
prova mettere una dichiarazione int i; prima del nella funzione.
Arduino Forum > International > Italiano > Software (Moderator: leo72) > [RISOLTO] Problema con funzione
arduino
Comments
Post a Comment