А в прерывание-то по OCF1A заходит? Ведь только при обработке этого прерывания сбрасывается! И еще возможно, что пока вы ходите по шагам, возникает новый запрос на прерывание. Попробуйте просмотреть работу программы в симуляторе, когда все действительно останавливается и таймер считает неторопливо, в такт с хождением по шагам. Еще есть где-то опция в эмуляторе, останавливающая счет таймера, когда ходим по шагам, но я ее толком никогда не проверял.
|