Код
//--- Timer 0 - interrupt 10 ms
T0PR = 0; //-- Prscaler = 0
T0PC = 0;
T0MR0 = 18000 * 10; //TimerInterval;
T0MCR = 3; //-- bit 0=1 -int on MR0 , bit 1=1 - Reset on MR0
T0TCR = 1; //-- Timer 0 - run
посмотрите, как там у Вас с частотой на таймер, вообще стартап. В моем случае 72/4=18, отсюда T0MR0 = 18000 * 10 для 10мс
и опять же - в каком месте вызывается чтение? может, оно так получается, что вызываете как раз в состоянии счетчика 0