Du könntest uns auch mal verraten, was dein Programm machen soll und was nicht funktioniert.
Welchen Sinn soll das delay_ms in der Interruptroutine haben? Wie m.a.r.v.i.n. schon sagte, ist das ziemlich unnötig und kann auch eine Fehlerquelle sein.
Du könntest das nächste Mal auch die Code-Funktion für das posten von code verwenden. Das macht den code deutlich übersichtlicher.