volviendome loco con los decimales

No veo qeu contador sea booleano

volatile int contador = 0;

pero esto si que no lo entiendo

  contador=0;
  contador++;           // Se incrementa en uno el contador

para eso simplemente le pones

  contador=1;

porque jamas tomará otro valor que ese.

Lo mismo con conta