Citazione:
Originalmente inviato da trabo allora questo è quello che ho scritto da 0... con soli 2 effetti e funziona.
Se aggiungo il 3 effetto lo salta: |
Supponendo che non ci siano problemi nell'hardware, c'è sicuramente un problema sui rimbalzi dell'interruttore e su come lo utilizzi.
In pratica hai due cicli while uno dietro l'altro con la condizione di ripetizione data dallo stato del pulsante.
Adesso immagina di essere nel primo while: fino a che l'ingresso è zero continua ad eseguire il codice contenuto nel while, ma quando l'ingresso diventa 1 esegue l'istruzione while, trova l'ingresso a 1 ed esegue subito l'istruzione seguente il wend, che è un altro while e se l'ingresso è ancora a 1 lo salta ed esce subito al wend...
In pratica il cambio dell'effetto lo fa sui rimbalzi del pulsante e sfruttando i ritardi dei vari effetti.
Prova a mettere la condizione in fondo all'effetto, invece che all'inizio: non uso il mikrobasic, ma dovresti avere una struttura do ... while(condizione); in questo caso tra quando trova il pulsante chiuso e quando lo va a testare la volta successiva hai il tutto il tempo di ritardo dell'effetto che dovrebbe annullarti i rimbalzi.
Michele