[an error occurred while processing this directive]
|
|
Главная функция, которая на нее возлагается - вытаскивать из глухих циклов, дурных залетаний в непробуждаемый SLEEP и т.п. Типичный случай - код ждет прихода периодической "1" от чего-нибудь внешнего, и это внешнее программист посчитал настолько незыблемым, что не удосужился проверять таймаут. А незыблемое взяло да залипло/отвалилось, вот и будет вечный цикл. Или - помеха привела к записи в TCCRx нуля, и остановился внутренний таймер, флага от которого будет до упора ждать система. А грамотно накормленная собачка все это разруливает.
Команды "кормежки" глупо ставить в процедурах обработки таймерских прерываний или внутри мелких циклов. Их место - УСПЕШНЫЙ конец главного цикла системы (допустим, процедуры main) или нечто подобное.
E-mail: info@telesys.ru