@thannara123; This was the first time that the ISR handler appeared here, indeed just at the 2nd page of this thread; considering that the title of this thread refers to this exact routine, seems like a sloppiness on your side to give an essential information just at the post #23. Now, looking at the code, it is clear the reason, you are adding the infamous delay there, but you were warned many times to avoid that, along many other good practices you got along other threads. I would expect you put in practice at least part of what was told. It is a little demotivating to repeat the same tips at new code you paste here.
As for the code itself, start a new one, use the interrupt timer just to provide a precise clock which will give you the exact timing for all procedures, and call them at specific time slices. Sometimes it is better to get rid of something that is essentially wrong rather than try to fix it.
- - - Updated - - -
Agreeing with Klaus's opinion, this thread was a waste of time so far and given the diagnosis of terminal illness of your code, this thread will be closed in the hope that next time you put in practice at least part of what has already been already recommended.