Hola, bueno segun parece solucionaron el problema pero la situación es quecuando se hace uso de
while el pic se queda realizando esa tarea mientras se cumpla la condicion o el control del pic lo tome una interrupcion que luego regresara al while, lo malo de esto es que si necesitas hacer otras cosas no se podra mientras no salga del bucle.
Yo te recomiendo uses flags o banderas para indicar que un evento ya ocurrio po ejemplo
int1 flag_entrada = 0;
IF ((entrada == 1)&&(flag_entrada == 1))
{
flag_entrada == 0;
.
.Lo que quieras cuando se presiona el boton.
.
}
IF(entrada == 0)
{flag_entrada = 1;}
con este flag_entrada el pic respondera solo una vez hasta que se suelte el boton y podras hacer otras cosas mientras el boton este preionado.
Como un maestro del foro me comento, no sirve de nada tener un pic corriendo a 40MIPS si no aprovechamos al maximo este recurso
Saludos.