man kann interrupts in der ISR enablen, ist aber ne bedenkliche Sache, weil da schnell mal der Stack überläuft, sprich nach irgendeiner Zeit kommen irgendwelche wirren Sachen raus.
Was DU machen kannst ist in der ADC ISR den vergleich machen (400Hz sollten spielend machbar sein) und in der ISR die Subroutine aufrufen. Dann bleibt die Unterbrechung des Hauptprogrammes stehen bis diese Sub bearbeitet ist und die ISR verlassen ist.
Genaueres kann man aber nur mit Durchsicht des Codes sagen. Stell den mal rein, evtl fällt einem ja was gescheites zur Beschleunigung ein.
Lesezeichen