Ho appena sbirciato il suo programma e ho visto un paio di cose che non mi convincono
1)l'incremento di una variabile probabilmente booleana. Esse possono avere come valore solo 0 o 1, HIGH o LOW, true o false, e non mi stupirebbe che portata a 2 essa torni a 0.
2) l'uso di una switch case con un case solo. Anche se é fattibile non é utile, in quanto perdi la comodità della switch stessa, che funziona come un insieme di if che controllano la stessa variabile