Спасибо за гору инфы! Еще бы переварить...
Добавил квалификатор volatile а всем переменным, используемым в ППОП. От предзагрузки таймера временно отказался, пока не разберусь, что происходит. Пока мне точность не нужна.
Никак не докопаюсь, для чего нужен
Код
if (T0IF){}
ППОП и так вызывается при появлении прерывания по переполнению TMR0.
Также не пойму, как в некоторых случаях работает оператор while. В книге по микроС сказано:
Цитата
Ключевое слово while используется для организации условных циклов. Синтаксис оператора while:
while (expression) statement. Оператор statement (тело цикла) выполняется раз за разом пока величина выражения expression не станет ложной. Проверка производится перед выполнением оператора statement. Таким образом, если expression ложно в самом первом проходе, цикл не выполняется.
У Кернигана и Ритчи иная точка зрения:
Цитата
while (выражение) оператор.
Здесь вначале вычисляется выражение. Если оно не равно нулю, выполняется оператор, а затем выражение вычисляется снова. Эти действия повторяются до тех пор, пока выражение не станет равным нулю. после этого управление передается на следующий оператор.
И где истина?
Сообщение отредактировал loghir - May 30 2011, 07:33