Creo que ya paso un buen de rato de que pusiste este post, pero creo saber que es lo que falla, yo realize este programa e igual no me servia con la interrupción. lo que hice fue quitar la optimización del C30 en Project-->Build option-->temp_6014.c en mi caso en el tuyo solo cambia por el nombre de tu proyecto igual esto te sirva o a quien utilize esta configuración
a y tambien se tiene que leer el valor en la interrupcion para que el buffer quede vacio