Der Fehler wurde doch schon gefunden; EGSLER hat als vorletzten Befehl (vor reti) in der ISR:
Code:
bcf INTCON, PEIE ; Interrupt-Flag löschen
Damit wird aber nicht das Interrupt-Flag, sondern der Interrupt-Enabe für periphere Int's abgeschaltet.
Da der Timer 2 beim PIC16F877 zu den peripheren Int's gehört, beim PIC16F628 sicherlich ebenso, wird nur 1 mal ein Int ausgelöst, weil dabei PEIE disabled wird .... dann kehrt Ruhe ein.