Разумеется, никакая программная задержка с прерываниями не дружит по определению, да и применять задержки следует лишь при отладке - для остального есть таймеры и шедулеры. А не нравится уже написанное - считай такты и пиши сам, если больше нехер делать.
P.S. Ты бы лучше не только этот кусок, а всю подветку перенес из RF в PIC -
http://caxapa.ru/475463.html