volviendome loco con los decimales

surbyte:
Te comprendo pero el único valor efectivo de conta y contador es 1.
No importa que pase, siempre vale 1 salvo cuando arranca que por untiempo el compilador lo pone en 0. Luego con cada interrupción vale 1 siempre a los efectos prácticos.
No me digas que lo pone a 0, porque cuando la interrupción termina siempre valdra 1 cualquiera de los dos contadores.

Pero si te fijas mas arriba en el código también le tiene puesto para q valga 0, aunque lo tiene anulado, si que lo tiene escrito

if(contador==1){
 // contador=0;
}

no sé, esta parte del código no tiene mucho sentido...