Como primer medida, para utilizar las interrupciones primero tienes que configurarlas y luego habilitarlas.
No es aconsejable utilizar delays dentro de la rutina de interrupción. Pero si en tu caso estás seguro que los pulsos son mas lentos que los tiempos que tienes de delays, no afectará.
No entiendo porque lees el puerto C, incluso antes de la configuración.
No sé como es la sintaxis de CCS para configurar la interrupción, así que deberías buscarla en el manual del compilador.
Yo utilizaría el contador, como variable global, dentro de la interrupción y luego lo evaluaría en el bloque principal. Algo así
int contador; // variable global
rutina de interrupcion
{
contador++; // incremento contador
}
void main(void)
{
configurar el tris de los puertos a utilizar
configurar interrupcion
habilitar interrupcion externa
habilitar interrupciones globales
while (TRUE)
{
if (contador == 2) encender salida correspondiente
if (contador == 3) encender otra salida
}
}
Si la entrada está dada por un pulsador, habría que implementar una rutina antirrebote.